Python 字符串、列表、元组、字典

Python 字符串、列表、元组、字典常用操作。

字符串常用操作

  • 字符串反转 - str[::-1],使用 -1 作为步长
1
2
3
>>> str = '12345'
>>> str[::-1]
'54321'

find/rfind

  • find - 检测 str 是否包含在 mystr 中,如果是返回开始的索引值,否则返回 -1
  • rfind - 从右边开始查找

mystr.find(str, start=0, end=len(mystr))

1
2
3
4
5
6
7
>>> str = 'hello world'
>>> str.find('mm')
-1
>>> str.find('o')
4
>>> str.find('ll')
2

index/rindex

跟 find() 方法一样,只不过如果 str 不在 mystr 中会报一个异常

mystr.index(str, start=0, end=len(mystr))

1
2
3
4
5
6
>>> str.index('ll')
2
>>> str.index('mm')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found

count

返回 str 在 start 和 end 之间 在 mystr 里面出现的次数 mystr.count(str, start=0, end=len(mystr))

1
2
3
4
5
6
7
8
9
10
>>> str                  
'hello world'
>>> str.count('l')
3
>>> str.count('o')
2
>>> str.count('l', 1, 6)
2
>>> str.count('oo')
0

replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次,不修改原字符串,返回一个新字符串。

mystr.replace(str1, str2, mystr.count(str1))

1
2
3
4
5
6
7
8
9
10
11
>>> str = 'hello sb sb2'
>>> str.replace('sb', 'mb')
'hello mb mb2'
>>> str
'hello sb sb2'
>>> str2 = str.replace('sb', 'mb')
>>> str2
'hello mb mb2'
>>> str2 = str.replace('sb', 'mb', 1)
>>> str2
'hello mb sb2'

split

以 str 为分隔符切片 mystr,如果 maxsplit 有指定值,则仅分隔 maxsplit 个子字符串
mystr.split(str=" ", 2)

1
2
3
4
5
>>> str = 'www.sb.com.cn'
>>> str.split('.')
['www', 'sb', 'com', 'cn']
>>> str.split('.', 2)
['www', 'sb', 'com.cn']

join

  • str.join(list) - list 中每个字符后面插入 str,构造出一个新的字符串

startswith/endswith

检查字符串是否是以 obj 开头/结尾, 是则返回 True,否则返回 False

  • mystr.startswith(obj)
  • mystr.endswith(obj)
1
2
3
4
5
6
7
8
>>> www
['www', 'sb', 'com', 'cn']
>>> www.join('@')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
>>> '@'.join(www)
'www@sb@com@cn'

lower/upper 转化大小写

  • mystr.lower()
  • mystr.upper()

ljust/rjust/center 对其方式

  • mystr.ljust(width) - 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
  • mystr.rjust(width) - 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
  • mystr.center(width) - 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

lstrip/rstrip/strip 去除空格

  • mystr.lstrip() - 删除 mystr 左边的空白字符
  • mystr.rstrip() - 删除 mystr 字符串末尾的空白字符
  • mystr.strip() - 删除mystr字符串两端的空白字符

isalpha/isdigit/isalnum/isspace/

  • mystr.isalpha() - 如果 mystr 所有字符都是字母 则返回 True,否则返回 False
  • mystr.isdigit() - 如果 mystr 只包含数字则返回 True 否则返回 False
  • mystr.isalnum() - 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
  • mystr.isspace() - 如果 mystr 中只包含空格,则返回 True,否则返回 False

列表相关操作

添加 append/extend/insert

  • append - 通过append可以向列表添加元素
  • extend - 通过extend可以将另一个集合中的元素逐一添加到列表中
  • insert(index, object) - 在指定位置 index 前插入元素 object
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> list = []                            
>>> list.append(2)
>>> list
[2]
>>> list.append(3)
>>> list
[2, 3]

>>> list.extend([6,7])
>>> list
[2, 3, 6, 7]

>>> list.insert(2,'w')
>>> list
[2, 3, 'w', 6, 7]

查找 in/index/count

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> list
[2, 3, 'b', 6, 7, 3]

>>> 2 in list
True
>>> 5 in list
False
>>> 5 not in list
True

>>> list.index(3)
1
>>> list.index(3, 4)
5

>>> list.count(3)
2

删除 del/pop/remove

  • del - 根据下标进行删除
  • pop - 删除最后一个元素
  • remove - 根据元素的值进行删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>>> list
[2, 3, 'b', 6, 7, 3]

>>> del list[2]
>>> list
[2, 3, 6, 7, 3]
>>> list.pop()
3
>>> list
[2, 3, 6, 7]

# 也可以删除指定元素
>>> list.pop(2)
6
>>> list
[2, 3, 7]
>>> list.append(3)

# 删除第一个匹配到的
>>> list.remove(3)
>>> list
[2, 7, 3]

排序 sort/reverse

  • sort 方法是将 list 按特定顺序重新排列,默认为由小到大,参数 reverse=True 可改为倒序,由大到小。
  • reverse 方法是将 list 逆置,不是排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> list
[2, 7, 3]

# 直接改变原list
>>> list.sort()
>>> list
[2, 3, 7]
>>> list.sort(reverse=True)
>>> list
[7, 3, 2]
>>> list.sort(reverse=True)
>>> list
[7, 3, 2]

# reverse方法只是倒置,而非排序
>>> list
[7, 3, 2, 5]
>>> list.reverse()
>>> list
[5, 2, 3, 7]

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> tuple = (1,2,3,3,4)
>>> tuple
(1, 2, 3, 3, 4)
# 访问元组
>>> tuple[4]
4

# index 和 count 与字符串和列表中的用法相同
>>> tuple.index(2)
1
>>> tuple.count(2)
1
>>> tuple.count(3)
2

字典的常见操作

获取元素

get(key) 方法不会在 key 不存在时抛出异常。

1
2
3
4
5
6
7
8
9
10
>>> info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
>>> info['name']
'班长'
>>> info['age']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
>>> info.get('age')
>>> info.get('name')
'班长'

修改元素

字典的每个元素中的数据是可以修改的,只要通过 key 找到,即可修改

1
2
3
4
5
>>> info.get('id')
100
>>> info['id'] = 101
>>> info.get('id')
101

添加元素

变量名['键'] = 数据

删除元素 del / clear

  • del 变量名['键'] - 用于删除指定 key,key 不存在时会抛出异常,也可以直接删除整个字典
  • clear - 用于清空整个字典
1
2
3
4
5
6
7
8
9
10
11
12
>>> info                                                                     
{'name': '班长', 'id': 101, 'sex': 'f', 'address': '地球亚洲中国北京', 'age': 28}
>>> del info['id2']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'id2'
>>> del info['age']
>>> info
{'name': '班长', 'id': 101, 'sex': 'f', 'address': '地球亚洲中国北京'}
>>> info.clear()
>>> info
{}

len() 字典数据个数

1
2
3
>>> info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
>>> len(info)
4

keys() / values() / items()

需要使用 list() 进行转换。

1
2
3
4
5
6
7
8
9
10
11
>>> info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
>>> info.keys()
dict_keys(['name', 'id', 'sex', 'address'])
>>> list(info.keys())
['name', 'id', 'sex', 'address']
>>>
>>> list(info.values())
['班长', 100, 'f', '地球亚洲中国北京']
>>> list(info.items())
[('name', '班长'), ('id', 100), ('sex', 'f'), ('address', '地球亚洲中国北京')]
>>>

in / not in

判断字典中是否包含指定的 key。Python3 已删除 has_key() 函数。

1
2
3
4
5
6
7
>>> info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
>>> 'id' in info
True
>>> 'age' in info
False
>>> 'age' not in info
True
hoxis wechat
一个脱离了高级趣味的程序员,关注回复1024有惊喜~
赞赏一杯咖啡
0%