cluren's Studio.

Python列表元组字符串相关操作

字数统计: 2.4k阅读时长: 10 min
2019/12/20

List操作

*列表方法

方法 描述
append() 在列表的末尾添加一个元素
clear() 删除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素数量。
extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index() 返回具有指定值的第一个元素的索引
insert() 在指定位置添加元素
pop() 删除指定位置的元素
remove() 删除具有指定值的项目
reverse() 颠倒列表的顺序
sort() 对列表进行排序

*操作解释

一、添加元素(扩展列表)

  1. append()
    (1)元素追加
1
2
3
4
5
6
7
8
9
>>> member = [1,2,'a']
>>> member.append('b')
>>> member
[1, 2, 'a', 'b']
>>>>>> member = [1,2,'a']
>>> member.append('b')
>>> member
[1, 2, 'a', 'b']
>>>

(2)列表追加

1
2
3
4
5
6
7
8
9
# 使用 extend() 方法将 list2 添加到 list1 的末尾:

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)

['a', 'b', 'c', 1, 2, 3]
  1. extend()
    (1)元素追加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 添加单个元素:
>>> member=[1, 2, 'a', 'b']
>>> member
[1, 2, 'a', 'b']
>>> member.extend('s')
>>> member
[1, 2, 'a', 'b', 's']
>>>

# 添加的对象必须是可迭代序列:
>>> member
[1, 2, 'a', 'b']
>>> member.extend(5)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
member.extend(5)
TypeError: 'int' object is not iterable

# 可用如下方法添加:
>>> member.extend([5])
>>> member
[1, 2, 'a', 'b', 5]
>>>

# 添加两个元素会报错:
>>> member.extend('a','b')
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
member.extend('a','b')
TypeError: extend() takes exactly one argument (2 given)

>>> member.extend(['a''b'])
>>> member
[1, 2, 'a', 'b', 's', 'ab']

(2)列表追加

1
2
3
4
5
>>> list1 = [1,2,4]
>>> list2 = [12,6]
>>> list1.extend(list2)
>>> print(list1)
[1, 2, 4, 12, 6]
  1. insert()
1
2
3
4
>>> member.insert(1,'ss')
>>> member
[1, 'ss', 2, 'a', 'b', 's', 'a', 'b']
>>>
  1. +运算 #两个列表的拼接(不可+元素)
1
2
3
4
>>> s1 = [1,2,3]
>>> s2 = [4]
>>> print(s1+s2)
[1,2,3,4]

#Extend是把每个元素都作为一个独立的元素扩充到原来的列表,而append则是把整个扩充列表作为一个元素追加到列表最后。

二、删除元素

  1. remove(i) # i为要移除的对象
1
2
3
4
5
6
7
>>> member=[1,2,'a']
>>> member
[1, 2, 'a']
>>> member.remove(1)
>>> member
#### [2, 'a']
>>>
  1. pop() #可指定删除某项,默认删除末尾元素,删除某个元素时返回这个元素的值
1
2
3
4
5
6
7
8
9
10
11
>>> member=[1,2,'a']
>>> member.pop()
'a'
>>> member.pop(0)
1
>>> member
[2]
>>> name = member.pop()
>>> name
2
>>>
  1. clear() # 清空列表的元素(类似于 del a[:])
1
2
3
4
5
6
>>> member
[1, 2, 'a', 'b', 5]
>>> member.clear()
>>> member
[]
>>>
  1. del #删除列表
1
2
3
4
5
6
7
>>> del member
>>> member
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
member
NameError: name 'member' is not defined
>>>

三、列表复制

  1. copy()
1
2
3
4
5
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)

["apple", "banana", "cherry"]

四、计数、排序、统计

  1. count() # 统计某项出现的次数
1
2
3
>>> L=['s','s','a','s']
>>> L.count('s')
3
  1. index() # 从列表中找出某个值第一个匹配项的索引位置,返回
1
2
3
4
>>> L
['s', 's', 'a', 's']
>>> L.index('a')
2

四、关系操作

  1. 大小比较(比较第一个元素的ASCII值)
1
2
3
4
5
6
7
8
9
10
>>> list1 = [1,2,3]
>>> list2 = [2,3,4]
>>> list1 < list2
True
>>> list3 = [2,1,0]
>>> list1 > list3
False
>>> (list1 < list2) and (list1 < list3)
True
>>>
  1. 关系判断(判断元素是否属于此列表)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> list1 = [1,2,3]
>>> 1 in list1
True
>>> 4 in list1
False
>>> 2 not in list1
False
>>>

# 列表内嵌列表的元素的索引与判断:
>>> list1 = [1,2,[3,4],5,6]
>>> 3 in list1
False
>>> 3 in list1[2]
True
>>> list1[2][0]
3
>>>
  1. * #重复操作
1
2
3
4
5
6
7
>>> list1 = [123,456]
>>> list1*3
[123, 456, 123, 456, 123, 456]
>>> list1 *=3
>>> list1
[123, 456, 123, 456, 123, 456]
>>>
  1. reveres #将列表元素倒叙排列
1
2
3
4
5
6
>>> list1
[2, 2, 2, 2, 1, 1, 1, 3, 3]
>>> list1.reverse()
>>> list1
[3, 3, 1, 1, 1, 2, 2, 2, 2]
>>>
  1. sort()#默认正序排序
1
2
3
4
5
6
7
8
9
>>> list1
[3, 3, 1, 1, 1, 2, 2, 2, 2]
>>> list1.sort()
>>> list1
[1, 1, 1, 2, 2, 2, 2, 3, 3]
>>> list1.sort(reverse=True)
>>> list1
[3, 3, 2, 2, 2, 2, 1, 1, 1]
>>>

list2=list1 #list2与list1共用一个地址
list2=list1[:] #两个元素相同的列表

元组

创建单个元素或需要加逗号

1
2
3
4
5
6
7
8
9
10
>>> temp=(1)
>>> type(temp)
<class 'int'>
>>> temp2=(1,)
>>> temp3=()
>>> type(temp2)
<class 'tuple'>
>>> type(temp3)
<class 'tuple'>
>>>

逗号是标识元组的关键标识(不加括号有逗号也可以创建元组)

1
2
3
>>> temp=1,2
>>> type(temp)
<class 'tuple'>

元组操作

  1. *重复操作
  2. del删除
  3. +拼接操作
  4. < > =关系操作
  5. in ,not in成员操作 (可用切片法更新元组)
1
2
3
4
5
>>> temp=(1,2,4)
>>> temp=temp[:1]+(3,)+temp[1:]
>>> temp
(1, 3, 2, 4)
>>>

字符串操作

方法 描述
capitalize() 把字符串的第一个字符改为大写
casefold() 把整个字符串的所有字符改为小写
center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串
count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
encode(encoding=’utf-8’, errors=’strict’) 以 encoding 指定的编码格式对字符串进行编码。
endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
expandtabs([tabsize=8]) 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。
isdecimal() 如果字符串只包含十进制数字则返回 True,否则返回 False。
isdigit() 如果字符串只包含数字则返回 True,否则返回 False。
islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。
isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False。
isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。
istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
join(sub) 以字符串作为分隔符,插入到 sub 中所有的字符之间。
ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
lower() 转换字符串中所有大写字符为小写。
lstrip() 去掉字符串左边的所有空格
partition(sub) 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串’, ‘’, ‘’)
replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
rfind(sub[, start[, end]]) 类似于 find() 方法,不过是从右边开始查找。
rindex(sub[, start[, end]]) 类似于 index() 方法,不过是从右边开始。
rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。
rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。
rstrip() 删除字符串末尾的空格。
split(sep=None, maxsplit=-1) 不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
splitlines(([keepends])) 在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。。
startswith(prefix[, start[, end]]) 检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
strip([chars]) 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
swapcase() 翻转字符串中的大小写。
title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table) 根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符。
upper() 转换字符串中的所有小写字符为大写。
zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。
CATALOG
  1. 1. List操作
    1. 1.0.1. *列表方法
    2. 1.0.2. *操作解释
      1. 1.0.2.1. 一、添加元素(扩展列表)
      2. 1.0.2.2. 二、删除元素
      3. 1.0.2.3. 三、列表复制
      4. 1.0.2.4. 四、计数、排序、统计
      5. 1.0.2.5. 四、关系操作
  • 2. 元组
    1. 2.1. 元组操作
  • 3. 字符串操作