初始Python基本数据类型——列表、元组、集合、字典

列表

列表允许元素不同类型,可以进行增删查改
关于列表的基本用法:

list1 = [1,2,3,4,'5'] #定义一个列表
list1 = list(1,2,3,4) 
len(list1) #返回一个列表的长度
list1[0] #列表的索引
list1[1:2] #列表的切片

list1 + list2 #合并两个列表
list1.extend('3', '4')

list1.insert(1,'a') #在对应位置插入元素

if a in list1:
	list1.remove(a) #删除指定的元素
#也可以使用pop
list1.pop(1) #去掉对应位置的元素,返回删除的元素的值

list1.clear() #清空所有列表

list1 = sorted(list1) #对列表进行升序排序,sorted返回排序好的列表
list1.sort(reverse = False) #列表的内置方法,进行升序排序

元组

元组的元素不能被更改,也不能增加和删除
相比较列表来说,它占用的内存较小

t1 = (1,2,3,'4')
t2 = tuple(['1',2,3,4])

for i in range(len(t2)):
	print(t2[i])

t1 = (1,2,3,4,5) #原来的t1被回收

字典

字典是由键值对组成的一种数据结构

dict1 = {'name':"hao", 'age':38}
dict2 = dict(zip(['name', 'age'],['hao', 23]))
#zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
#然后返回由这些元组组成的列表。
dict3 = dict(key1 = 2, key2 = '3') #{'key1': 2, 'key2': '3'}

dict2['age'] #23 访问键的对应值

dict2.keys() #返回所有键
dict2.values() #返回所有值

#更新值
dict2['age'] = 25
dict2.update(age=25)

dict2.get(age, 50) #get方法可以获得键的对应值,也可以设置默认值

#删除对应键值对
dict2.pop(key,50) #删除对应元素,返回值,否则返回默认值

#清空字典
dict2.clear()

集合

集合正如高中所学的一样,是由一群类型相同的元素组成,没有重复

s1 = {1,1,2,3,4} #{1,2,3,4}
s2 = set((1,2,3,4))
s3 = set(range(1,10)) #构造器

#集合的添加和删除
s1.add(5)
s1.update({6,7})
s1.discard(7)
s1.remove(6)
s1.pop() #删除开头元素

集合与集合间的运算
包括 交集、并集、差集
s1 | s2 #并集
s1 & s2 #交集
s1 - s2 #差集
s1 > s2 #真子集
s1 >= s2 #子集

生成式和生成器

生成式由列表生成式、字典生成式和集合生成式

l1 =  [i for i in range(10)]

生成器:

生成器和生成式的主要区别在于他们的执行过程,即:生成式会计算出所有需要的值,然后一起返回,就像把所有可以孵化的鸡蛋都孵化成小鸡之后,再一起把小鸡送进养鸡场;而生成器不同,他是孵出一个小鸡,就送一个小鸡进养鸡场,即每产生一个值,就返回一个值。(来自参考链接)

生成器语法

s1 = (x **2 for x in range(5))

通过yield构造生成器函数

def fib(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
        yield a


def main():
    for val in fib(20):
        print(val)


if __name__ == '__main__':
    main()

参考链接:
生成式和生成器
jackfrued——Python100天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值