最重要的四种序列数据类型:List, Tuple, Dictionary, Set
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] list = list(('a', 'b', 'c')) print(len(letters)) # len()可以查看列表的长度
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] print(letters[2:5]) """ ['c','d','e'] """
letters[-2] = 2019 print(letters[-2]) #将倒数第二个变成2019
list = ['apple'] list.insert(1, 'orange') # 列表的增加 list.remove('apple') # 列表的删除 list2 = list.copy() # 列表的复制 print(list2) list = [1, 2, 3, 4, 5] # 删除列表的某一个元素 del list[2] print(list)
列表的运算:
list1, list2 = [1, 2, 3], [4, 5, 6] print(list1 + list2) # [1, 2, 3, 4, 5, 6] 注意不是数字加和 print(list1 * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
其他:
letters = ['a', 'g', 'f', 'b', 'c', 'd', 'e'] sorted(letters) # letters.sort() # The list is sorted permently print(letters) letters.reverse() #倒放列表 print(letters)
Tuple类型和列表类型一样,也是一种序列集合,与列表不同的是,元祖内的数据一旦创建,就不可修改了。
dimensions = (200, 50) dimensions[0] = 250 # error 元组不支持修改
dimensions = (200, 50) dimensions = (400, 10) # works fine 也就是 重新定义
for dimension in dimensions: print(dimension)
tup = ('Google', 'Facebook', 'Amazon') del tup print(tup) # Error 删除了整个Tuple,所以打印不出来了
numbers = (5, 9, 11) print(len(numbers)) # 3 知道长度 print(min(numbers)) # 5 最小值 print(max(numbers)) # 11 最大值
字典是一种键值对应的集合,每个关键值都有对应的数据。
字典中的每个键值(key => value)都用冒号(:)分割,每对之间用逗号(,)隔开,整个字典包含在花括号中({}),格式如下:
dict = {key1: value1, key2: value2, key3: value3}
student1 = {'gender': 'male', 'age': 18} print(student1['gender']) print(student1['age']) student1[0] = 'female' # 注意这里不会改变键‘gender’的值,而是创建了一个新的键值 print(student1) """ male 18 {'gender': 'male', 'age': 18, 0: 'female'} """
student1['grade'] = 250 student1['name'] = 'Enoch' # 直接命名
del student1['name'] # 删除元素 student1.clear() # 清空字典 del student1 # 删除字典
# Looping through all key-value pairs user = { 'username': 'Alex', 'first': 'dada', 'last': 'wang', } for key, value in user.items(): # 需要key和value去触及键值,加上.items()函数 print(f"\nKey: {key}") # 分别打印键值 print(f"Value: {value}") # 将字典里面的key都找出来 for key in user.keys(): # 使用内置函数 keys() print(key + ": " + user.get(key)) # get()函数 获取value """ username: Alex first: dada last: wang """ # Looping through a dictionary's keys in a pariticular order for key in sorted(user.keys()): # sorted()函数排序 print(key) # Looping through all values in a dictionary for value in user.values(): print(value.title()) # title()函数是首字母大写
# A List in a Dictionary pizza = { 'crust': 'thick', 'toppings': ['mushrooms', 'extra cheese'], } # 披萨的字典 print(f"You ordered a {pizza['crust']}-crust pizza" "with the following toppings:") for topping in pizza['toppings']: print("\t" + topping) #\t是制表符 # 字典里再加一个字典 users = { 'Enoch': { 'full_name': 'Xiao Wang', 'age': 25, }, 'Fandy': { 'full_name': 'Wang Hong', 'age': 25, } } for name, information in users.items(): print(f"{name}: {information['full_name']} is {information['age']} years old.")
集合是一个无序的不重复元素序列。可以使用大括号({})或者set()函数来创建集合
注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典的。
a = set('abcdr') b = set('aclzm') print(a - b) # 集合a中包含而集合b中不包含的元素 print(a | b) # 集合a或b中都包含的元素 print(a & b) # 集合a和b中都包含的元素 print(a ^ b) # 不同时包含于a和b的元素
companies = set(("Google", "Facebook", "Amazon")) companies.add("Uber") # 添加元素可以使用add(x)函数, 将x添加到集合中,如果元素存在,则不进行任何操作: print(companies)
new_set = set(("Google", "Facebook", "Amazon")) new_set.update({1, 3}) # 函数update()也可以用来添加元素,且参数可以是列表、元祖、字典等 print(new_set) new_set.update([1, 4], [5, 6]) print(new_set) """ {1, 'Facebook', 3, 'Google', 'Amazon'} {1, 'Facebook', 3, 'Google', 4, 5, 6, 'Amazon'} """
移除元素有两个函数,一个是remove(x),如果元素x不存在,则会发生错误。
另一个是discard()函数,如果元素不存在,不会发生错误:
new_set = set(("Google", "Facebook", "Amazon")) new_set.remove("Taobao") # 会报错 new_set.discard("Google") # 没有该元素也不会报错 print(new_set)