Python学习笔记系列——数据结构相关

  Python有4种数据结构:列表(list)、字典(dictionary)、元组(Tuple)、集合(set)。从最直接的感官上来说,这四种数据结构的区别是:列表中的元素使用方括号括起来,字典和集合是花括号,元组是圆括号,其中字典中的元素都是带有“:”的key-value对应关系组。

1、列表(List)

#1、列表中的每一个元素都是可以变的
#2、列表中的元素都是有序的,也就是说每一个元素都有一个位置
#3、列表可以容纳Python中的任何对象

fruit = ['Apple','Orange','pear']
fruit.insert(1,'grape') #在第二个数据前面插入
print(fruit)
fruit.remove('pear')    #删除
print(fruit)
fruit[0] = 'Grapefruit' #替换
print(fruit)

2、字典(Dictionary)

#1、字典中数据必须是以键值对的形式出现
#2、逻辑上,键是不能重复的,而值可以重复
#3、字典中的键Key是不可变的,也就是无法修改的。而值Value是可变的,可修改的,可以是任何对象

a = {'key':'123','key':'123'}     #重复的键值对,只会输出一个
print(a)

Nasdaq_code = {'BIDU':'baidu','SINA':'sina'}
Nasdaq_code['YOKU'] = 'youku'     #添加元素
print(Nasdaq_code)
Nasdaq_code.update({'FB':'facebook','TSLA':'Tesla'}) #批量添加
print(Nasdaq_code)
del Nasdaq_code['FB']           #删除元素
print(Nasdaq_code)

3、元组(Tuple)

#1、元组不可修改
#2、元组可被查看索引,方式同列表
letters = ('a','b','c','d','e','f')
print(letters[0])

4、集合(Set)

#1、集合中的元素是无序、不重复的任何对象
#2、集合不能被切片也不能被索引。可做集合运算,集合元素可以被添加还有删除

a_set = {1,2,3,4}
a_set.add(5)            #添加
print(a_set)
a_set.discard(5)        #删除
print(a_set)

5、推导式(列表解析式)

  现在我有10个元素要装进列表中,普通的写法是这样的:

下面换成列表解析的方式来写,是这样的:

  如下图,列表推导式可以简单的看成两部分。红色虚线后面的是我们熟悉的for循环表达式,虚线前面的可以认为是我们想要放在列表中的元素。

列表解析式的执行效率比较:(列表解析式的执行效率较高,性能较优)

#推导式 list = [item for item in iterable],先iterable,在进行item的输出
import time
a=[]
t0 = time.clock()
for i in range(1,2000):#使用循环时的执行时间
    a.append(i)
print(time.clock() - t0,'seconds process time')

t0 = time.clock()
b=[i for i in range(1,200)]#使用列表解析式的执行时间
print(time.clock() - t0,'seconds process time')
#列表解析式示例
a = [i**2 for i in range(1,10)]
print(a)
c = [j+1 for j in range(1,10)]
print(c)
k = [n for n in range(1,10) if n %2 ==0]
print(k)
z = [letter.lower() for letter in 'ABCDEFGHIGKLMN']
print(z)
d = {i:i+1 for i in range(4)}
print(d)
g = {i:j for i,j in zip(range(1,6),'abcde')}
print(g)
l = {i:j.upper() for i,j in zip(range(1,6),'abcde')}
print(l)
原文地址:https://www.cnblogs.com/zichuan/p/9378200.html