列表的创建方式:
- 使用[ ];
- 使用list();
- 使用range()创建整数列表;
- 使用推导式生成列表;
使用[ ]:
a = []
a = [10,20,"hello world"]
使用推导式生成列表:
# 先将x从range中依次赋值,然后*2,从而生成列表
a = [x*2 for x in range(5)]
# 先将x从range中依次赋值,然后*2,如果x%9=0,那么生成列表
a = [x*2 for x in range(100) if x%9==0]
使用list():
a = list() # 也是空列表
a = list(range(10))
a = list("hello world") # 将字符串转为列表
使用range()创建整数列表:
- range()的用法:
- range([start,],end,[,step])
- start:可选,表示起始数字,默认为0
- end:必选,表示结尾数字
- step:可选,表示步长,默认为1
- python3中range返回的是一个range对象,而不是列表,我们只是使用list()方法,将range对象转为列表对象
a = list(range(3,15,2))
a = list(range(15,3,-1))
a = list(range(3,-10,-1))
元组的创建方式:
- 通过()创建元组,如果元组只有一个元素,要写成(a,),有逗号;
- 通过tuple()创建元组,tuple(可迭代的对象);
- 通过zip(列表1,列表2,...),将多个列表的对应位置组合成为元组;
- 通过生成器推导式创建元组,生成器只能使用一次,第二次为空;
通过()创建元组:
a = (10,20,30)
a = 10,20,30
a = (1) # a是int
a = (1,) # a是tuple
通过tuple()创建元组:
# tuple(可迭代对象)
a = tuple() # 空元组
a = tuple("abc") # 字符串转元组
a = tuple(range(3)) # range对象转元组
a = tuple([2,3,4]) # 列表转元组
通过zip(列表1,列表2,...):
a = [1,2,3,4]
b = [5,6,7,8]
c = [9,10,11,12]
d = zip(a,b,c) # zip对象
e = list(d) # e = [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
通过生成器推导式创建元组:
a = tuple(x*2 for x in range(5))
tuple特点:
- 元组的核心是:不可变序列;
- 元组的访问和处理速度比列表快;
- 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用;
tuple和list区别:
- tuple()可以接收列表、字符串、其它序列类型、迭代器等生成元组;
- list()可以接受元组、字符串、其他序列类型、迭代器等生成列表;
字典的创建方式:
- 通过{}来创建字典;
- 通过dict()来创建字典;
- 通过zip来创建字典;
- 通过fromkeys创建值为空的字典;
通过{}来创建字典:
a = {}
a = {'name':'张三','age':18,'address':"江苏"} # 注意key都要加引号
通过dict()来创建字典:
a = dict()
a = dict(name='张三',age=18,address="江苏") # 不是key:value形式,key也没有引号,key = value
a = dict([('name',"张三"),("age",18),("address","江苏")]) # 键值对在列表中写成元组的形式
通过zip来创建字典:
# 先写key,再写value,
# key和value都存入列表中,不是字典中
a = ['name','age','address']
b = ['张三',18,"江苏"]
d = dict(zip(a,b)) # zip(b,a)键值对反过来
通过fromkeys创建值为空的字典:
e = dict.fromkeys(['name','age','address'])
print(e)
# {'name': None, 'age': None, 'address': None}