1.字符串常用方法
name = "Convict abc"
count(): print(name.count("c")) # 2
find(): print(name.find("a")) # 8
index(): print(name.index("a")) # 8 如果找不到,会报错
根据下标区间取值: print(name[0: 4]) # Conv
format():
new_name = "my new name is {name}" print(new_name.format(name="GG"))
# my new name is GG
isdigit():判断是否为数字
print("11".isdigit()) # True print("abc".isdigit()) #False
join():将要连接的元素序列、字符串、元组、字典 连接形成新的字符串
print("==".join(["1", "a", "M"])) # 1==a==M
strip():去除首尾空格和换行
print(" abc ".strip()) # abc
split():按照方法参数中的字符分割,返回分割后的列表
print("1+2+a+c".split("+")) # ['1', '2', 'a', 'c']
2.列表:类似于C或者Java的数组(有序,可以通过下标取值)
values = ["aaa", "bbb", "ccc"]
然而列表也可以存放列表,例如:
values = ["aaa", "bbb", "ccc", "ddd", "eee", "ddd", ["ddd", "eee"]]
列表的常用方法
# 按下标取 # 正序 print(values[0]) print(values[1]) # 负号表示逆着数,一般常用-1来取最后一个值 print(values[-1]) # 按下标区间取 [起始,终点),所以是不包括最后一个的 # eg1:取下标 1, 2, 3 对应的值 print(values[1:4]) # eg2:-3对应bbb,-1对应ddd print(values[-3:-1]) # eg3:如果取某一下标直到结尾,冒号之后不写下标即可 print(values[-2:]) # eg4:如果从起始位置起到某一指定位置,冒号前不写下标即可 print(values[0:2]) # 按下标,同时加步长 print(values[0:-1:2]) print(values[::2]) print(values[:]) # 增加 values.append("OFF") print(values) values.insert(1, "INSERT") print(values) # 修改 values[0] = "AAA" print(values) # 删除 values.remove("OFF") # 直接找这个值并且删除,找不到会报错 print(values) del values[2] print(values) values.pop(-2) # 取出,可以拿到对应下标的值,如果方法不传参,默认最后一个 print(values) # 找下标位置,根据参数找,找不到报错 print(values.index("ddd")) # 统计 print(values.count("ddd")) # 清空 values.clear() print(values) # 扩展 values2 = ["!!!", "@@@"] values.extend(values2) print(values) # 排序, 特殊字符 > 数字 > 英文大写 > 英文小写, 即按照ASCII排序规则 values.sort() print(values) # 反转 values.reverse() print(values) # copy 只复制首层列表,多重列表的内层列表不复制,内层列表copy的都是同一个内存地址指针 values3 = values.copy() print(values3) names = ["a", "b", ["MM", "NN"], "d"] names2 = names.copy() print(names) print(names2) names2[1] = "B" print(names) print(names2) names[2][0] = "123" print(names) print(names2) # (深copy)直接copy一个副本,数据大时最好不用这个,否则资源消耗大 import copy names = ["a", "b", ["MM", "NN"], "d"] names2 = copy.deepcopy(names) print(names) print(names2) names[2][0] = "123" print(names) print(names2) # 元组tuple(只读列表),只能读的列表,没有增删改操作 names = ("A", "B") print(names) # 查找字符在列表中的下标 name = "abc" print(name.index("a")) # 找不到直接报错 print(name.find("d")) # 找不到返回-1
3.字典: key-value 形式的数据类型,键值对类型,类似于json格式,(无序,通过key取值)例如:
person1 = { "name": "AAA", "age": 12, "addr": "China" }
然而字典存放的也可以是字典,例如:
people = { "p1": person1, "tel": 888666000 }
对字典取值:
①知道key,直接 字典[“key”]取值,如:
print(person1["age"]) # 12
# 但如果这key是不存在的,则会报错,如 print(person1["bbb"]) 会直接报错
②.get()方法
print(person1.get("age")) # 12 print(person1.get("aaa")) # None
# .get()可以传字典中不存在的key,返回 None,取值时候建议用这个方法
对字典删除:
①知道key,直接 字典[“key”]取值,如:
del person1["aaa"] # 删除key为aaa的整个值,如果key不存在,则会报错
②.pop()方法,取出字典中指定的key以及key所对应的值,所以这个方法是有返回值的,且原字典会移除对应的key及value,如果key不存在则报错
person1.pop("age") # 12
③.popitem()方法,随机取出key以及key所对应的值,有返回值,原字典会移除对应的key及value
person1.popitem() # 随机的
对字典增加:类似json,直接往字典添加key跟value即可
person1["salary"] = 4500
对字典修改:
person1["name"] = "new Name" # 如果key是原字典不存在的,就变成了增加