在python中有六中内置序列,其中有三种常见的序列类型:列表、元组和字符串。在python中大部分的序列都可以进行通用的操作,包括索引、切片、相同类型序列相加、乘法、成员资格(in)、长度、最大值和最小值,本文不展开通用操作进行讲解。
列表的作用相当于其他高级语言中的数组,是python重要的数据结构之一,本节将会讲解和列表相关的操作
list1 = [1, 2, 3]
#append
list1.append(4)
print(list1) # [1, 2, 3, 4]
#extend
list1.extend([5, 6, 7])
print(list1) # [1, 2, 3, 4, 5, 6, 7]
#insert
list1.insert(2, 10)
print(list1) # [1, 2, 10, 3, 4, 5, 6, 7]
list1 = [1, 2, 3, 4, 5, 6, 7]
#pop
print(list1.pop(0)) #1
print(list1.pop()) #7
print(list1) # [2, 3, 4, 5, 6]
#remove
list1.remove(4)
print(list1) # [2, 3, 5, 6]
#del
del list1[0]
print(list1) # [3, 5, 6]
list1 = [1, 1, 1, 2, 4, 5, 7]
#index
print(list1.index(1)) #0
print(list1.index(6)) #报错
#count
print(list1.count(1)) #3
#in
print(2 in list1) #True
list1 = [1, 3, 2, 0, 4, 5, 7]
#reverse
list1.reverse()
print(list1) #[7, 5, 4, 0, 2, 3, 1]
#sort
list1.sort()
print(list1) #[0, 1, 2, 3, 4, 5, 7]
list1.sort(reverse=True)
print(list1) #[7, 5, 4, 3, 2, 1, 0]
str = 'hello world hello world'
#replace
str1 = str.replace('hello', 'hi')
print(str1) #hi world hi world
str2 = str.replace('world', 'python', 1)
print(str2) #hello python hello world
#split
list1 = str.split('world')
print(list1) #['hello ', ' hello ', '']
#join
str3 = '-'
str4 = str3.join(['1', '2', '3'])
print(str4) # 1-2-3
元组和列表十分相似,大部分方法都通用,但是元组与序列最大的区别就是列表可以修改,而元组创建之后这不能被修改,不能删除单个元素,但能删除整个元组。定义元组的时候只需要用"(" 和")"把元素括起来,并用","把元素隔开。注意:如果元组内只有一个元素,也要在元素后加上",",否则元素还是其原来的类型。
python中有一种内置类型叫做集合(set),它与列表(list)的行为相似,区别就是结合它是无序的并且不包含重复值的数据结构
set1 = {1, 2, 3}
set2 = set()
# add
set2.add(1)
set2.add(2)
set2.add(3)
print(set2) #{1, 2, 3}
#remove
set1.remove(1)
print(set1) #{2, 3}
set1 = {4, 5, 6, 7, 8, 9, 10}
set2 = {1, 2, 3, 7, 8, 11, 12}
#交集
print(set1 & set2) #{8, 7}
#并集
print(set1 | set2) #{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#差集
print(set1 - set2) #{4, 5, 6, 9, 10}
print(set2 - set1) #{1, 2, 3, 11, 12}
#对称差集
print(set1 ^ set2) #{1, 2, 3, 4, 5, 6, 9, 10, 11, 12}
在python中,字典是一组键值对,字典中的元组都是你成对出现的,每个元素必须要有键的对应值
person1 = {
"name": "孙悟空",
"age": 1000,
"gender": "女"
}
#获取元素
print(person1["name"]) #孙悟空
# print(person1["qq"]) #报错
print(person1.get("qq")) #None
#添加元素/修改
person1["name"] = "猪八戒" #修改name
person1["qq"] = "1234567" #添加qq
print(person1) #{'name': '猪八戒', 'age': 1000, 'gender': '女', 'qq': '1234567'}
#删除元素
del person1["qq"]
print(person1) #{'name': '猪八戒', 'age': 1000, 'gender': '女'}
person1.pop("gender")
print(person1) #{'name': '猪八戒', 'age': 1000}
person1.clear()
print(person1) #{}
person1 = {
"name": "孙悟空",
"age": 1000,
"gender": "女"
}
#keys
keys = person1.keys()
print(keys) #dict_keys(['name', 'age', 'gender'])
#values
values = person1.values()
print(values) #dict_values(['孙悟空', 1000, '女'])
# values
items = person1.items()
print(items) #dict_items([('name', '孙悟空'), ('age', 1000), ('gender', '女')])
seq = ("name", "age", "class")
#fromkeys:类方法
student1 = dict.fromkeys(seq)
print(student1) #{'name': None, 'age': None, 'class': None}
student2 = dict.fromkeys(seq, 15)
print(student2) #{'name': 15, 'age': 15, 'class': 15}
#copy
student3 = student2.copy()
print(student3)
student3["name"] = "孙悟空"
print(student3) #{'name': '孙悟空', 'age': 15, 'class': 15}
print(student2) #{'name': 15, 'age': 15, 'class': 15}
person1 = {
"name": "孙悟空",
"age": 1000,
"gender": "女"
}
list1 = ['a', 'b', 'c', 'd']
tuple1 = enumerate(list1)
print(tuple1) #
for k, v in enumerate(person1):
print(k ,v)
'''
0 name
1 age
2 gender
'''
python支持三种推导式(或者称为解析式),分别对应列表、字典、集合,利用for循环能够非常自然、简单的方式构建列表、字典和集合。列表推导式的语法:
[表达式 for 表达式 in 序列对象 if xxx] 列表用[]括起来,字典和集合用{}括起来, 表达式和表达式之间要相关联
#列表推导式
list1 = [x for x in range(5) if x % 2 != 0]
print(list1) #[1, 3]
#字典推导式
d1 = {
"name": "孙悟空",
"age": 1000
}
person = {
v: k for k,v in d1.items()
}
print(person) #{'孙悟空': 'name', 1000: 'age'}
numdict = {n: n**2 for n in range(5) if n % 2 !=0}
print(numdict) #{1: 1, 3: 9}
#集合推导式:和列表推导式差不多,但是会去除重复的元素
s = {i**2 for i in [-1, -2 ,0, 1, 2]}
print(s) #{0, 1, 4}