Python自学——“增删改查”、深浅拷贝
字符串常用函数
split(str="", num=string.count(str)) 搜索指定str并按照num个数分割字符串(会删除str),返回字符串列表
partition(str) 3段式分割,返回元组类型: (‘左’, ‘str’, ‘右’)
join(seq) 以指定字符串作为分隔符,将 seq (列表)中所有的元素(的字符串表示)合并为一个新的字符串
eval() 用来执行一个字符串表达式,并返回字符串表达式的值
str.find(str, beg=0, end=len(string)) 找到首个指定字符串在的位置,返回下标值,找不到则返回-1. str -- 指定检索的字符串。beg -- 开始索引,默认为0。end -- 结束索引,默认为字符串的长度
str.index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报错.
str.count(sub, start= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
str.replace(old, new[, max]) 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
str.capitalize() 字符串首字母大写
str.title() 每个单词首字母大写
str.startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。
strip([chars]) 去除字符串两侧[char],一般用于去除空格,相当于执行lstrip([chars])和rstrip([chars])
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
isspace() 如果字符串中只包含空白,则返回 True,否则返回 False
isdigit() 如果字符串只包含数字则返回 True 否则返回 False
isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False 所有函数均不改变原字符串,只是返回新值。
a = 'wealcome to the international!'
b = ['1', '2', '3', '4', '5']
c = ' book '
print(a.split(' ', 2))
>>>['wealcome', 'to', 'the international!']
print(a.partition('to'))
>>>('wealcome ', 'to', ' the international!')
print('_'.join(b))
>>>1_2_3_4_5
print('%s = %s'%(('+'.join(b)), eval('+'.join(b))))
>>>1+2+3+4+5 = 15
print(a.find('a'))
>>>2
print(a.index('a'))
>>>2
print(a.count('a'))
>>>3
print(a.replace('int', 'Int'))
>>>wealcome to the International!
print(a.capitalize())
>>>Wealcome to the international!
print(a.title())
>>>Wealcome To The International!
print(a.startswith('w'))
>>>True
print(c.strip())
>>>book
列表常用函数和方法
查找列表:in 和 not in
list0 = [1, 2, 3, 4, 5]
print(2 in list0)
>>>True
List函数(函数有返回值)
len()
max()
min()
不说了,提一下z>a>Z>A在比较字母大小的时候,实际比较的是ASCII码 list(seq)
强制转换为列表
List方法(改变List,大多无返回值)
增:
list.extend(list) 末尾扩充列表,无返回值,直接改变原list
list.append() 末尾扩充元素,同样无返回值
list.insert(index, obj) 列表中插入元素,按index下标前插
删:
list.clear() 清空列表
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(index, obj) 移除列表中某个值的第一个匹配项 改:
list.reverse() 反向列表中元素
list.sort(revwerse=False or True) 排序,无返回值,默认reverse=False升序,True为降序
list.copy() 复制列表,返回复制后的新列表。 查:
list.count() list.index()方法与字符串一致,但没有 find()方法
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
#增删改查
#列表:
li = [10, 2, 3]
#增
li.append(4)
li.extend([5, 6])
li.insert(0, 0)
#删
li.remove(0)
li.pop(-1)
del li[-1]
# li.clear()
#改
li.sort()
li.reverse()
#查
li.count(2)
max(li)
min(li)
len(li)
a = li[0]
li.index(2)
Dic字典常用函数和方法
函数
len() str() type()
方法
dict.items() 以列表返回可遍历的(键, 值) 元组数组。返回可遍历的(键, 值) 元组数组。 dict.keys() 返回一个keys值组成的迭代器,可以使用 list() 来转换为列表
dict.values() 返回一个values组成的迭代器,可以使用 list() 来转换为列表
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值 None
dict.fromkeys(seq[, value]) 创建新字典,可以列表形式写keys,代表多个keys。但values只能写唯一值,即便是列表形式。
#元组(不可变)
#增
tup = (1, 2, 3)
#查
print(tup[0: 2])
#字典
dic = {'a': 1, 'b': 2}
dic0 = {'d': 4}
#增
dic.setdefault('c', 3)
dic.update(dic0)
dic1 = dict.fromkeys(['e', 'f'])
dic1['key3']='value3'
#删
dic.pop('a')
del dic['d']
del dic1
#改
dic['a'] = 0
#查
dic.items()
dic.keys()
dic.values()
dic.get('a')
dic.setdefault('g')
深浅拷贝
浅拷贝使用时,可变数据类型中的子元素如果可变,则该可变子元素的指向地址公用。
深拷贝则子元素指向地址重新建立,各自独立。
浅拷贝:.copy()
copy.copy()
[:]
深拷贝:copy.deepcopy()
赋值:=
赋值时,指针指向同一地址
import copy
a = [[0, 3], 1, 2]
b = copy.deepcopy(a)
c = a.copy()
d = a
a[0][1] = 4
print(a, b, c, d)
>>>[[0, 4], 1, 2] [[0, 3], 1, 2] [[0, 4], 1, 2] [[0, 4], 1, 2]