本文内容参考:https://www.cnblogs.com/pychina/p/10219772.html

索引都是用中括号[]!!!!!!

一、列表list
  1. 列表中的每个元素都可变的,意味着可以对每个元素进行修改和删除;
  2. 列表是有序的,每个元素的位置是确定的,可以用索引去访问每个元素;
  3. 列表中的元素可以是Python中的任何对象,这意味着元素可以是字符串、整数、元组、也可以是list等Python中的对象。

初始化为中括号[]

常见操作

# 初始化
mylist = ['Google', 'Yahoo', 'Baidu']

# 在列表后面追加
mylist.append('Alibaba')

# 在指定位置插入元素
mylist.insert(1, 'Tencent') 
# ['Google', 'Tencent', 'Microsoft', 'Baidu', 'Alibaba']

# 弹出尾部元素
mylist.pop()
# 这是弹出最后一位,可以与append()配合用于栈

# 弹出指定位置元素
mylist.pop(0)    
# 这是弹出第一位,可以与append()配合用于队列

# 批量删除
del mylist[1:3]
# 此处为删除位置为1和位置为2的内容,不包含位置3。与索引时相同,不包含末尾。

# 指定内容删除
mylist.remove('Microsoft')

# 索引前n个
mylist[:5]   # 索引前5个,分别为0,1,2,3,4
# 索引前n个
mylist[1:5]   # 索引位置分别为1,2,3,4
# 索引后n个
mylist[3:]    # 从位置3开始索引,一直到末尾

# 生成有规律的列表
a = [x for x in range(1,10)]
# 得到a=[1, 2, 3, 4, 5, 6, 7, 8, 9]

# 嵌套式
#生成一个列表a
a = [i for i in range(1,4)]
print(a)

#生成一个列表b
b = [i for i in range(100,400) if i % 100 == 0]
print(b)

# 嵌套式 
c = [m+n for m in a for n in b]
print(c)

#运行结果:
#    [1, 2, 3]
#    [100, 200, 300]
#    [101, 201, 301, 102, 202, 302, 103, 203, 303]
二、元组tuple
  1. 元组Tuple,用法与List类似,但Tuple一经初始化,就不能修改,没有List中的append(), insert(), pop()等修改的方法,只能对元素进行查询

初始化为小括号()

三、字典dict
  1. 字典中的数据必须以键值对的形式出现,即k,v:
    key:必须是可哈希的值,比如intmstring,float,tuple,但是,list,set,dict不行
    value:任何值。

  2. 键不可重复,值可重复:
    键若重复字典中只会记该键对应的最后一个值。

  3. 字典中键(key)是不可变的,何为不可变对象,不能进行修改;而值(value)是可以修改的,可以是任何对象:
    在dict中是根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。

初始化为大括号{}
可用for k,v in a.items():同时得到key和value,a.keys()为访问key,a.values()为访问value
若直接for i in a:,则输出的是key

一个对象在其生命周期内,如果保持不变,就是hashable(可哈希的)。
hashable ≈ imutable 可哈希 ≈ 不可变
在Python中:
list、set和dictionary 都是可改变的,比如可以通过list.append(),set.remove(),dict[‘key’] = value对其进行修改,所以它们都是不可哈希的;
而tuple和string是不可变的,只可以做复制或者切片等操作,所以它们就是可哈希的。
参考:https://blog.csdn.net/qq_17753903/article/details/85345996

比较大小时,比的是key,返回的也是key

d = {"one":1,"two":2,"three":3,"four":4}
print(max(d))
print(min(d))
四、集合set
  1. 集合中每个元素都是无序的、不重复的任意对象
  2. 集合内数据无序,即无法使用索引和分片
  3. 集合内部数据元素具有唯一性,可以用来排除重复数据
  4. 可以通过集合去判断数据的从属关系。集合可做集合运算,可添加和删除元素。

初始化:

s = {1,2,3,4,5,6,7}
s = set([1,2,3,4,5,6,7])

集合内容操作,因为是无序的,所以只有单纯的添加和删除(需要指定内容)

s = set([1,2,3])
s.add(6)
s.remove(2)

集合运算

s1 = {1,2,3,4,5,6,7}
s2 = {5,6,7,8,9}

#交集
s_1 = s1.intersection(s2)
print("交集:",s_1)

#差集
s_2 = s1.difference(s2)
print("差集:",s_2)

#并集
s_3 = s1.union(s2)
print("并集:",s_3)

#检查一个集合是否为另一个子集
s_4 = s1.issubset(s2)
print("检查子集结果:",s_4)

#检查一个集合是否为另一个超集
s_5 = s1.issuperset(s2)
print("检查超集结果:",s_5)

冰冻集合除了不能修改之外,其余和集合一样!
冰冻集合初始化:

a = frozenset([1,2,4,2,3])

结果为frozenset({1, 2, 3, 4}),因为不含重复值

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐