- 字符串
- strip只能去除掉两边的内容,无法去除中间的内容
- 但replace可以对中间的内容进行替换,‘’表示替换去除掉内容
- 最后的数字表示替换的个数
- 删除列表末尾元素
- 列表末尾添加元素
- 在固定位置添加元素
- 结果是:
- 注意:extend中添加也是在末尾,如果只是添加一个字符串,那么字符串中的每一个字符都会被当作单个元素一次添加进去,如果以列表的形式来添加,那么列表会被当作整体添加。
- 方式一
- pop如果不加参数,默认剔除掉末尾的元素,如果添加下标索引值,则删除指定的元素,pop具有返回值,删除的元素可以赋值给变量做判断
- 方式二
- 四种删除方式中只有remove是通过写出删除的元素来删除的
- 方式三
- 通过下标索引来删除, 并且可以进行切片删除
- 方式四
- 把列表元素全部删除
- 通过切片来进行修改
- 通过列表中的步伐来隔元素进行修改,注意:需要修改几个元素,列表中需要给定几个元素,否则会报错
- 注意反向遍历的时候,左侧索引值必须-1, 步伐必须是负数
字符串
1.去除空格 strip()
s1 = ' 测试程序 '
print(s1.strip())
# 去除两端的空格, 可以用于用户输入时去掉输入
# 内容两端的多余空格,括号内的是被去除的内容,不写默认为空格
print(s1.lstrip())
# 去除左边的空格
print(s1.rstrip())
# 去除右边的空格
居中设置 center(‘占几个字符’, ‘代替多余空格的内容’)
s = "测试"
print(s.center(10, '-'))
# 让字符串居中
# 结果: ----测试----
字符串中字母大小写
str1 = str.upper()
print(str1)
# 把字符串中的每一个单词全部转换成大写
str2 = str.lower()
print(str2)
str3 = str2.capitalize()
print(str3)
print(str.title())
# 每个单词的首字母大写
print(str.capitalize())
索引操作,可以设置步伐
str = 'This is a string'
print(str[-7:-2:2])
print(str[-1:-7:-2])
替换字符串中的内容 ```python s = “Alex is a programmer” s1 = s.replace(‘ ‘, ‘’) print(s1)
strip只能去除掉两边的内容,无法去除中间的内容
但replace可以对中间的内容进行替换,‘’表示替换去除掉内容
s2 = s.replace(‘Alex’, ‘Jack’) print(s2)
s3 = ‘AlexAlexAlexAlexAlexAlex’ s4 = s3.replace(‘Alex’, ‘Jack’, 3) print(s4)
最后的数字表示替换的个数
- 切片操作split(‘分界的内容,被切掉的内容’),切片后结果是有多个字符串组成的列表
> **Note**
> 需要注意的是如果切片操作切到了字符串的两端,那么会形成空的字符
```python
s5 = 'Jack_is_a_hacker_and_very_like_program'
s6 = s5.split('_')
print(s6)
s7 = s5.split('_program')
print(s7)
# 结果是:
['Jack', 'is', 'a', 'hacker', 'and', 'very', 'like', 'program']
['Jack_is_a_hacker_and_very_like', '']
# 空字符串
字符串的格式化操作
print('%s的性别是%s,年龄是%d' % (name, gender, age))
# %进行格式化,位置是固定的
李明的性别是男,年龄是19
print('{}的年龄是{},性别是{}'.format(name, age, gender))
李明的年龄是19,性别是男
print('{2}的年龄是{0},性别是{1}'.format(age, gender, name))
李明的年龄是19,性别是男
# 可以指定位置,format中的顺序可以随意写,但需要注意的是下标索引必须从0开始
print('%s的价格是%.2f' % (food, price))
大米的价格是123456.21
# 保留小数点后的两位
查找操作,注意start和end后都需要加上s
s.startswith('测试')
True
# 查找字符串以固定内容开头
s.endswith('内容')
True
# 查找字符串以固定内容结尾
s = 'aaaaaaaabbbbbbbb'
print(s.count('a'))
8
# 计算字符串中固定字符出现的次数
s = '12345sfljaso'
print(s.find('f'))
6
# 查找字符在字符串中的具体位置
print(s.find('ccc'))
-1
注意: 如果字符串中没有查找的字符,那么返回值是-1
s = '123456dafsdfgfbbbbbbbb1234'
print(s.find('fgf', 4, 23))
11
# 查找固定位置内是否存在字符, 4为起始位置,23为结束位置
print(s.index('bbbb'))
14
# 查找字符在字符串中的下标索引值
print(s.isalpha())
False
# 判断字符串是否由字母组成
print(s.isalnum())
True
# 判断字符串是否由字母和数字组成
print(s.isdigit())
True
# 判断字符串是否由数字组成
if s.startswith('12') and s.endswith('qew'):
...if s.isalnum() and s.find('fg', 3, 15):
... print('fg在字符串内')
...else:
... print('fg不在字符串内')
...else:
... print('字符串格式不正确')
# 结果是:
fg在字符串内
# 综合使用
字符串的长度
s.__len__()
23
len(s)
23
# __len__()方法等同于len(), len调用的就是__len__()方法
遍历字符串中的所有内容,需要先求出中长度,根据下标索引来打印出来
'''方法一:根据索引来打印'''
s = '21324354wqeretr'
l = len(s)
for i in range(0, l - 1):
... print(s[i])
...
# 结果是:
2、1、3、2、4、3、5、4、w、q、e、r、e、t
'''直接遍历打印'''
for i in s:
print(s, end='#')
# 结果是:
1#2#3#2#4#5#w#q#e#r#w#g#f#d#v#c#
# 这里需要注意end的用法,这个用法在python3版本中才可以直接使用,python2版本不支持
列表
列表中的切片操作
list = [1, 2, 3, 4, '21345wfe', 'safewgfvsc', 12324]
print(list[4][3])
# 结果是:
4
# 字符串也是可以继续索引的
print(list[2:4])
['sfaelm', 2]
list.append({'name': 'Alex'})
# 在列表末尾添加元素
list
['213sd', '1324frvgf', 'sfaelm', 2, 1, {'name': 'Alex'}]
# 列表中可以包含字典元素
print(list[5]['name'])
Alex
# 打印字典的value
print(list[::2])
['213sd', 'sfaelm', 1]
- 列表的增删改查
```python
‘’’添加元素’’’
list = [‘黄渤’, ‘史泰龙’, ‘黄宏’]
list.pop()
删除列表末尾元素
print(list) list.append(‘张艺’)列表末尾添加元素
list.insert(3, ‘姚明’)在固定位置添加元素
print(list) ‘’’迭代添加’’’ list.extend(‘马化腾’) print(list) list.extend([‘马云’, ‘俞敏洪’]) print(list)结果是:
[‘黄渤’, ‘史泰龙’, ‘张艺’, ‘马’, ‘化’, ‘腾’] [‘黄渤’, ‘史泰龙’, ‘张艺’, ‘马’, ‘化’, ‘腾’, ‘马云’, ‘俞敏洪’]注意:extend中添加也是在末尾,如果只是添加一个字符串,那么字符串中的每一个字符都会被当作单个元素一次添加进去,如果以列表的形式来添加,那么列表会被当作整体添加。
‘’’删除元素’’’
方式一
data = list.pop(2) print(data) print(list) 张艺 [‘黄渤’, ‘史泰龙’, ‘马’, ‘化’, ‘腾’, ‘马云’, ‘俞敏洪’]
pop如果不加参数,默认剔除掉末尾的元素,如果添加下标索引值,则删除指定的元素,pop具有返回值,删除的元素可以赋值给变量做判断
方式二
list.remove(‘马云’) print(list) [‘黄渤’, ‘史泰龙’, ‘马’, ‘化’, ‘腾’, ‘俞敏洪’]
四种删除方式中只有remove是通过写出删除的元素来删除的
方式三
del list[3] print(list) [‘黄渤’, ‘史泰龙’, ‘马’, ‘腾’, ‘俞敏洪’] del list[2:4] print(list) [‘黄渤’, ‘史泰龙’, ‘俞敏洪’]
通过下标索引来删除, 并且可以进行切片删除
方式四
list.clear() [ ]
把列表元素全部删除
‘’’修改列表元素:过程是先删除后新增’’’ list = [‘1234’, ‘王者荣耀’, ‘sdg’, 123243, ‘麦田的守望者’, ‘平凡的世界’, 123, {‘age’: 13}] list[2:4] = [‘政治’, ‘军事’] print(list) [‘1234’, ‘王者荣耀’, ‘政治’, ‘军事’, ‘麦田的守望者’, ‘平凡的世界’, 123, {‘age’: 13}]
通过切片来进行修改
list[1:4:2] = [‘QQ’, ‘Wechat’] [‘1234’, ‘QQ’, ‘政治’, ‘Wechat’, ‘麦田的守望者’, ‘平凡的世界’, 123, {‘age’: 13}]
通过列表中的步伐来隔元素进行修改,注意:需要修改几个元素,列表中需要给定几个元素,否则会报错
- 列表的遍历
```python
for i in list:
print(i, end=' ')
1234 QQ 政治 Wechat 麦田的守望者 平凡的世界 123 {'age': 13}
列表的嵌套(将为操作)
list = [[1, 2], ['测试', '程序'], [[1, 2, 3], [3, 4, 5], [6, 7, 8]], {'name': 'Alex'}]
list[2][1][0] = 1111
# 或者list[2][1][0] = list[2][1][0] + 1098
print(list)
[[1, 2], ['测试', '程序'], [[1, 2, 3], [1111, 4, 5], [6, 7, 8]], {'name': 'Alex'}]
# 多层嵌套使用
其他的操作
'''查询元素出现的次数,和字符串用法一致'''
count = list[1].count('测试')
print(count)
'''列表排序'''
list = [0, 20, 33, 1, 44, -1]
list.sort()
print(list)
[-1, 0, 1, 20, 33, 44]
# sort排序方式默认是升序排序
list.reverse()
print(list)
[44, 33, 20, 1, 0, -1]
# reverse()默认为降序排序
list.sort(reverse=True)
print(list)
[44, 33, 20, 1, 0, -1]
# 或者还继续红sort,但是添加元素reverse=True来进行降序排列
元组(不可变的列表)
基本用法:小括号包裹,如果只有一个元素,后边必须加上逗号
tuple = (3,)
print(tuple)
(3,)
tu = ()
type(tu)
<type 'tuple'>
# 空元组
元组不支持任何修改,只能读取元素
tuple[0]
3
for i in tu:
print(i)
1、2、3、4、55
# 索引和列表中的使用方法完全一样
tuple[0] = 34
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
tuple.append(2333)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
del tuple[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
虽然元组是不可变的,但是如果元素中有可变元素如列表,那么可变元素中的元素是可以修改的,但可变元素本身不能变
tuple = (1, '23', '这是字符串', [])
print(tuple)
tuple[3].append(1)
print(tuple)
tuple[3].insert(2, 3)
print(tuple)
# 结果是:
(1, '23', '这是字符串', [])
(1, '23', '这是字符串', [1])
(1, '23', '这是字符串', [1, 3])
range()用法
- range()是一个可迭代的对象
- range(m, n), 遍历的结果下标是从m到n-1
- range(m, n, y) y表示的是步伐 ```python for i in range(0, len(tu), 2): print(tu[i], end=’、’) 1、3、4、5、6
tu = [1,2,3,3,4,5,5,6,6] for i in range(len(tu)-1, 0, -2): print(tu[i]) 6 5 4 3
注意反向遍历的时候,左侧索引值必须-1, 步伐必须是负数
```
Note 切片操作的到的对象类型和原对象类型一致, 切片不会改变对象类型