数据种类
列表
files = ["f1.txt", "f2.txt", "f3.txt", "f4.txt", "f5.txt"]
print("files[0] ", files[0])
print("files[3] ", files[3])
print("files[-1] ", files[-1])
print("files[-3] ", files[-3])
输出:
files[0] f1.txt
files[3] f4.txt
files[-1] f5.txt
files[-3] f3.txt
在列表中,你可以存放不同类型的元素,字符,数字,甚至列表里还能有列表。
列表的访问可以通过下标索引,或通过for循环和while循环的遍历
列表的分片/切片
切片操作基本表达式:[start_index:stop_index:step]
(1)start_index,如果没有指定,则默认开始值为 0;
(2)stop_index 值: 指示到哪个索引值结束,但不包括这个结束索引值。如果没有指定,则取列表允许的最大索引值(即list.length);
(3)step 值: 步长值指示每一步大小,如果没有指定,则默认步长值为 1。
(4)当 step>0,start_index 的空值下标为 0,stop_index 为空时,值下标为list.length,step 的方向是左到右;
(5)当 step<0,start_index 的空值下标为list.length,stop_index 的空值下标为 0,此时反向为右到左默认正
默认正向索引,编号从 0 开始。
支持反向索引,编号从-1 开始。
左闭右开的规则
列表的常用功能
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
append()用于在列表末尾添加新的对象。
files = []
for i in range(5):
files.append("f"+str(i)+".txt") # 在列表末尾添加新对象
print("has", files)
for i in range(len(files)):
print(i)
print("pop", files.pop()) # 从最后一个开始 pop 出
print("remain", files)
输出:
has ['f0.txt']
has ['f0.txt', 'f1.txt']
has ['f0.txt', 'f1.txt', 'f2.txt']
has ['f0.txt', 'f1.txt', 'f2.txt', 'f3.txt']
has ['f0.txt', 'f1.txt', 'f2.txt', 'f3.txt', 'f4.txt']
pop f4.txt
remain ['f0.txt', 'f1.txt', 'f2.txt', 'f3.txt']
pop f3.txt
remain ['f0.txt', 'f1.txt', 'f2.txt']
pop f2.txt
remain ['f0.txt', 'f1.txt']
pop f1.txt
remain ['f0.txt']
pop f0.txt
remain []
files = ["f1.txt", "f2.txt"]
# 扩充入另一个列表
files.extend(["f3.txt", "f4.txt"])
print("extend", files)
# 按位置添加
files.insert(1, "file5.txt") # 添加入第1位(首位是0哦)
print("insert", files)
# 移除某索引
del files[1]
print("del", files)
# 移除某值
files.remove("f3.txt")
print("remove", files)
输出:
extend ['f1.txt', 'f2.txt', 'f3.txt', 'f4.txt']
insert ['f1.txt', 'file5.txt', 'f2.txt', 'f3.txt', 'f4.txt']
del ['f1.txt', 'f2.txt', 'f3.txt', 'f4.txt']
remove ['f1.txt', 'f2.txt', 'f4.txt']
字典
每个元素都有一个标签,或者 Key,对应着这个 Key,存放着他们的值 Value。
files = {"ID": 111, "passport": "my passport", "books": [1,2,3]}
print(files)
print(files["books"])
输出:
{'ID': 111, 'passport': 'my passport', 'books': [1, 2, 3]}
[1, 2, 3]
如果在索引的时候,索引到了一个不存在的 key,就会报错
在字典中的元素不像列表,字典元素是没有顺序的
通过 key 我们就能将对应的 value 进行修改。
files["ID"] = 222
print(files)
files["ID"] = [2,3,4]
print(files)
输出:
{'ID': 222, 'passport': 'my passport', 'books': [1, 2, 3]}
{'ID': [2, 3, 4], 'passport': 'my passport', 'books': [1, 2, 3]}
字典的常用功能
files = {"ID": 111, "passport": "my passport", "books": [1,2,3]}
# 按key拿取,并在拿取失败的时候给一个设定好的默认值
print('files["ID"]:', files["ID"])
print('files.get("ID"):', files.get("ID"))
# 将另一个字典补充到当前字典
files.update({"files": ["1", "2"]})
print('update:', files)
# pop 调一个item,和列表的 pop 类似
popped = files.pop("ID")
print('popped:', popped)
print("remain:", files)
输出:
files["ID"]: 111
files.get("ID"): 111
update: {'ID': 111, 'passport': 'my passport', 'books': [1, 2, 3], 'files': ['1', '2']}
popped: 111
remain: {'passport': 'my passport', 'books': [1, 2, 3], 'files': ['1', '2']}
元组
元组有它一个唯一的独特性,就是它里面的东西不可变,定下来就定下来了,不让你变。
files = ("file1", "file2", "file3")
print(files[1])
files[1] = "file4" # 这里会报错
合集
set 里面只会存在非重复的元素,不管你往里面加了多少相同元素,这些相同元素都会坍缩成一个。 这种特性,我们就可以运用它来做交集并集等操作。
注意,在集合中的元素,其实是没有顺序的。(和数据结构中的集合概念相同)
my_files = set(["file1", "file2", "file3"])
print(my_files)
my_files.add("file3")
print(my_files)
my_files.add("file4")
print(my_files)
my_files.remove("file3")
print(my_files)
输出:
{'file3', 'file2', 'file1'}
{'file3', 'file2', 'file1'}
{'file3', 'file2', 'file1', 'file4'}
{'file2', 'file1', 'file4'}
print("my_files", my_files)
your_files = {"file1", "file3", "file5"} #初始化set的简便写法
print("your_files", your_files)
print("交集 ", your_files.intersection(my_files))
print("并集 ", your_files.union(my_files))
print("补集 ", your_files.difference(my_files))
输出:
my_files {'file2', 'file1', 'file4'}
your_files {'file3', 'file1', 'file5'}
交集 {'file1'}
并集 {'file3', 'file2', 'file1', 'file5', 'file4'}
补集 {'file3', 'file5'}