python 列表,元组,字典,集合

列表:

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

# list
list1 = [1, 2, 3, 4, 5]
list2 = ["google", "Runoob", "a", 1, 2, 3]
list3 = ["a", "b", "c"]
print(list1[1])
print(list2[3])

列表使用半角中括号声明 [ ]
更新列表的内容,可以直接使用

list1[i] = xxx

来更新,其中i为列表元素的下标
使用

del list[2]

来删除列表元素
列表还支持拼接

squares = [1, 4, 9, 16, 25]
squares += [36, 49, 64, 81, 100]
 squares
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

0000000000000000000000000000000000000
元组:

Python 的元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ("google", "like", 1, 2, 3)
tup2 = "google", 1, 2, 3, 4, 5  #不用括号也可以

创建空元组:

tup1 = ();

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

tup1 = (50)
 type(tup1)     # 不加逗号,类型为整型
<class 'int'>
 
 tup1 = (50,)
type(tup1)     # 加上逗号,类型为元组
<class 'tuple'>

对元组的修改:
元组内的元素不能修改,不过可以删除整个元组、以及拼接两个元组:

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')
 
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
 
# 创建一个新的元组
tup3 = tup1 + tup2;
print (tup3)

#分割
tup = ('Google', 'Runoob', 1997, 2000)
 
print (tup)
del tup;
print ("删除后的元组 tup : ")
print (tup)

0000000000000000000000000000000000000
字典:
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
#或者如下创建字典
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

对字典的访问:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

修改及删除字典内容:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

dict['Age'] = 8;               # 更新 Age
dict['School'] = "菜鸟教程"  # 添加信息
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

在这里会报异常,因为删除字典后再打印会提示找不到
字典的特性:
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

dict = {['Name']: 'Runoob', 'Age': 7}
 
print ("dict['Name']: ", dict['Name'])

以上实例输出结果:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'

0000000000000000000000000000000000000

集合:
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:

parame = {value01,value02,...}
#或者
set(value)

集合的运算

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)                      # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
'orange' in basket                 # 快速判断元素是否在集合内
True
'crabgrass' in basket
False
 
# 下面展示两个集合间的运算.
...
a = set('abracadabra')
b = set('alacazam')
a                                  
{'a', 'r', 'b', 'c', 'd'}
a - b                              # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
a | b                              # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
a & b                              # 集合a和b中都包含了的元素
{'a', 'c'}
a ^ b                              # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

集合的基本操作:
1.添加元素,如果元素已经存在,那么不进行任何操作

s.add( x )
thisset = set(("facebook", "linux", "hello"))
print(thisset)
thisset.add("valye")
print(thisset)

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

s.update(x)可以添加多个内容,用半角逗号隔开

print(thisset)
thisset.add("valye")
print(thisset)
thisset.update([1,4],[5,6])
print(thisset)

2.移除元素
语法格式如下:

s.remove( x )

将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
(*)
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop() 

用法实例:

thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
x = thisset.pop()
 
print(x)

多次执行测试结果都不一样。
然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

thisset = set(("facebook", "linux", "hello"))
print(thisset)
thisset.add("valye")
print(thisset)
thisset.update([1,4],[5,6])
print(thisset)
thisset.remove("hello")
print(thisset)
thisset.discard(123)

3.计算集合元素的个数:

thisset.len()

4.清空集合:

thisset.clear()

5.判断元素在集合众是否存在
判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
语法如下:

x in s

实例如下:

thisset = set(("Google", "Runoob", "Taobao"))
 "Runoob" in thisset
True
 "Facebook" in thisset
False

猜你喜欢

转载自blog.csdn.net/ykallan/article/details/85383205