python的字符串、列表、元组、字典、集合
前言
Python3 中有六个标准的数据类型:
Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
一、字符串
字符串用引号""括起来,是不可修改的有序序列。
代码如下(示例):
str1 = 'hello, python!'
# 通过len函数计算字符串的长度
print(len(str1)) # 13
# 字符串首字母大写
print(str1.capitalize()) # Hello,python!
# 字符串大写
print(str1.upper()) # HELLO, PYTHON!
# 从字符串中查找子串所在位置
print(str1.find('on')) # 11
print(str1.find('99')) # -1
# 与find类似但找不到子串时会引发异常
# print(str1.index('on'))
# print(str1.index('99'))
# 检查字符串是否以指定的字符串开头
print(str1.startswith('go')) # False
print(str1.startswith('hel')) # True
# 检查字符串是否以指定的字符串结尾
print(str1.endswith('!')) # True
# 将字符串以指定的宽度居中并在两侧填充指定的字符
print(str1.center(50, '*'))
# 将字符串以指定的宽度靠右放置左侧填充指定的字符
print(str1.rjust(50, ' '))
str2 = 'abc123456'
# 从字符串中取出指定位置的字符(下标运算)
print(str2[1]) # b
# 字符串切片(从指定的开始索引到指定的结束索引)
print(str2[2:5]) # c12
print(str2[2:]) # c123456
print(str2[2::2]) # c246
print(str2[::2]) # ac246
print(str2[::-1]) # 654321cba
print(str2[-3:-1]) # 45
# 检查字符串是否由数字构成
print(str2.isdigit()) # False
# 检查字符串是否以字母构成
print(str2.isalpha()) # False
# 检查字符串是否以数字和字母构成
print(str2.isalnum()) # True
str3 = ' jackfrued@126.com '
print(str3)
# 去除左右两侧空格
print(str3.strip())
- 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
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
二、列表
列表用【】方括号括起来,用逗号隔开,例:list =【2,8】,可进行增删改查的有序序列。
代码如下(示例):
list1 = [1, 8, 99, 9, 100]
print(list1)
list2 = ['python'] * 5
print(list2)
# 计算列表长度(元素个数)
print(len(list1))
# 下标(索引)运算
print(list1[0])
print(list1[4])
# print(list1[5]) # IndexError: list index out of range
print(list1[-1])
print(list1[-3])
list1[2] = 300
print(list1)
# 添加元素
list1.append(200)
list1.insert(1, 400)
list1 += [1000, 2000]
print(list1)
print(len(list1))
# 删除元素
list1.remove(3)
if 1234 in list1:
list1.remove(1234)
del list1[0]
print(list1)
# 清空列表元素
list1.clear()
print(list1)
- 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
三、元组
元组用()圆括号括起来,用逗号隔开,不可修改的有序序列。
代码如下(示例):
# 定义元组
t = ('panpan', 29, True, '广东广州')
print(t)
# 获取元组中的元素
print(t[0])
print(t[3])
# 遍历元组中的值
for i in t:
print(i)
# 重新给元组赋值
# t[0] = '盘子' # TypeError
# 变量t重新引用了新的元组原来的元组将被垃圾回收
t = ('盘子', 44, True, '广东阳江')
print(t)
# 将元组转换成列表
info = list(t)
print(info)
# 列表是可以修改它的元素的
info[0] = '六六'
info[1] = 25
print(info)
# 将列表转换成元组
fruits_list = ['orange','apple', 'banana' ]
fruits_tuple = tuple(fruits_list)
print(fruits_tuple)
- 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
四、字典
字典用{ }花括号括起来,用逗号隔开,字典是另一种可变容器,与列表、集合不同的是,字典的每个元素都是由一个键和一个值组成的“键值对”,键和值通过冒号分开。
代码如下(示例):
menmbers = {'panpan': 95, 'zaizai': 94, 'fangfang': 96}
# 通过键可以获取字典中对应的值
print(menmbers['panpan'])
print(menmbers['fangfang'])
# 对字典进行遍历(遍历的其实是键再通过键取对应的值)
for i in menmbers:
print('%%s ---> %%d' %% (i, menmbers[i]))
# 更新字典中的元素
menmbers['panpan'] = 76
menmbers['fangfang'] = 55
menmbers.update(zaizai=63, fangfang=88)
print(menmbers)
if 'zaizai' in menmbers:
print(menmbers['zaizai'])
print(menmbers.get('zaizai'))
# get方法也是通过键获取对应的值但是可以设置默认值
print(menmbers.get('zaizai', 60))
# 删除字典中的元素
print(menmbers.popitem())
print(menmbers.popitem())
print(menmbers.pop('panpan', 100))
# 清空字典
menmbers.clear()
print(menmbers)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
五、集合
集合不允许有重复元素
代码如下(示例):
set1 = {1, 2, 3, 3, 3, 2}
print(set1)
print('Length =', len(set1))
set2 = set(range(1, 10))
print(set2)
set1.add(4)
set1.add(5)
set2.update([11, 12])
print(set1)
print(set2)
set2.discard(5)
# remove的元素如果不存在会引发KeyError
if 4 in set2:
set2.remove(4)
print(set2)
# 遍历集合
for i in set2:
print(i ** 2, end=' ')
print()
# 将元组转换成集合
set3 = set((1, 2, 3, 3, 2, 1))
print(set3.pop())
print(set3)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
推荐阅读