Python中列表、元组、字典的创建方式

列表的创建方式:

  1. 使用[ ];
  2. 使用list();
  3. 使用range()创建整数列表;
  4. 使用推导式生成列表;

使用[ ]:

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()创建整数列表:

  1. range()的用法:
  2. range([start,],end,[,step])
  3. start:可选,表示起始数字,默认为0
  4. end:必选,表示结尾数字
  5. step:可选,表示步长,默认为1
  6. python3中range返回的是一个range对象,而不是列表,我们只是使用list()方法,将range对象转为列表对象
a = list(range(3,15,2))
a = list(range(15,3,-1))
a = list(range(3,-10,-1))

元组的创建方式:

  1. 通过()创建元组,如果元组只有一个元素,要写成(a,),有逗号;
  2. 通过tuple()创建元组,tuple(可迭代的对象);
  3. 通过zip(列表1,列表2,...),将多个列表的对应位置组合成为元组;
  4. 通过生成器推导式创建元组,生成器只能使用一次,第二次为空;

 通过()创建元组:

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特点:

  1. 元组的核心是:不可变序列;
  2. 元组的访问和处理速度比列表快;
  3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用;

tuple和list区别:

  1. tuple()可以接收列表、字符串、其它序列类型、迭代器等生成元组;
  2. list()可以接受元组、字符串、其他序列类型、迭代器等生成列表;

 字典的创建方式:

  1. 通过{}来创建字典;
  2. 通过dict()来创建字典;
  3. 通过zip来创建字典;
  4. 通过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}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值