1. 取值
在 Python 中,每个元素都有一个位置,称为索引。在大多数情况下,索引从0开始,而不是1。这与日常生活中的计数习惯不同。
字符串取值
python
st1 = 'thisisapple'
print(st1[2]) # 输出 'i'
print(st1[6]) # 输出 'a'
列表取值
python
li = ['tom', 'Jon', 'Merry', 'Lili']
print(li[2]) # 输出 'Merry'
元组取值
python
tu = (123, 'abcd', 456, 'tuple')
print(tu[2]) # 输出 456
2. 切片
Python 序列的切片功能非常强大。切片的基本语法是 [N:M]
,表示从索引 N 到 M 的元素(不包括 M)。切片还可以包含第三个参数 S
,即步长,可以是负数。
基本切片
python
s = [1, 2, 3, 4, 5, 6, 7, 8]
print(s[0:6]) # 输出 [1, 2, 3, 4, 5, 6]
负数步长
python
print(s[::-1]) # 输出 [8, 7, 6, 5, 4, 3, 2, 1]
使用负数步长可以从右向左取值,例如:
python
print(s[-1:-2:-1]) # 输出 [8]
print(s[-2:-1:-1]) # 输出 []
字符串切片
python
st1 = 'thisisapple'
print(st1[1:4]) # 输出 'his'
print(st1[1:6:2]) # 输出 'hss'
列表切片
python
li = ['tom', 'Jon', 'Merry', 'Lili']
print(li[1:3]) # 输出 ['Jon', 'Merry']
print(li[2:]) # 输出 ['Merry', 'Lili']
print(li[:2]) # 输出 ['tom', 'Jon']
print(li[:-1]) # 输出 ['tom', 'Jon', 'Merry']
元组切片
python
tu = (123, 'abcd', 456, 'tuple')
print(tu[:3]) # 输出 (123, 'abcd', 456)
3. 重新赋值
在 Python 中,有些数据类型是不可变的(如字符串和元组),而另一些是可变的(如列表)。
不可变类型
字符串和元组的值一旦设定就不能修改。如果需要修改,必须重新赋值。
python
a = 'IAmTom'
print(a[3:6]) # 输出 'Tom'
try:
a[3:6] = 'Jon'
except TypeError as e:
print(e) # 输出 'str' object does not support item assignment
a = 'IAmJon'
使用列表可以实现字符串的修改:
python
a = 'IAmTom'
la = list(a)
la[3:6] = 'Jon'
a = ''.join(la)
print(a) # 输出 'IAmJon'
元组
元组同样不可变,但可以通过解包等方式处理。
python
tu = ('a', 'b', 'c')
x, y, z = tu # 解包
print(x, y, z) # 输出 'a b c'
x, *y = tu # 除第一个元素外,其余元素放入列表
print(x, y) # 输出 'a ['b', 'c']'
列表
列表是可变的,可以直接修改其元素。
python
li = [1, 2, 3]
li[2] = 4
print(li) # 输出 [1, 2, 4]
1. 字符串方法
查找
python
one = '我我是祖国的花朵儿'
print(one.index('我')) # 输出 0
print(one.count('我')) # 输出 2
print(one.find('我')) # 输出 0
修改
python
two = 'IAmTom'
print(two.upper()) # 输出 'IAMTOM'
print(two.lower()) # 输出 'iamtom'
three = ' you are welcome '
print(three.strip()) # 输出 'you are welcome'
删除
python
st = '我说最帅的吧吧吧吧'
print(st.replace('吧', '啊', 2)) # 输出 '我说最帅的啊啊吧吧'
增加
```python st1 = 'hello' st2 = 'world' print(st1 + ' ' + st2) # 输出 'hello world'
print('%s %s %s' % ('tom', 'jon', 'merry')) # 输出 'tom jon merry'
a = '早晨好' print('...'.join(a)) # 输出 '早...晨...好'
print('hello {}, {}, {}'.format('tom', 'jon', 'merry')) # 输出 'hello tom, jon, merry' print('hello {1}, {2}, {0}'.format('tom', 'jon', 'merry')) # 输出 'hello jon, merry, tom' ```
字符串本义
python
print('abcdef')
print('abcndef') # 输出 'abc'
# 'def'
print('abcbdef') # 输出 'abdef'
print('abcrdef') # 输出 'defbc'
print(r'n') # 输出 'n'
2. 列表方法
增加
python
li = [1, 2, 3]
li.append('hello')
li.insert(1, 'tom')
li.extend((111, 222))
print(li) # 输出 [1, 'tom', 2, 3, 'hello', 111, 222]
删除
python
a = [1, 2, 3, 4, 5]
print(a.pop(1)) # 输出 2
print(a.pop()) # 输出 5
a.remove(4)
a.clear()
print(a) # 输出 []
修改
python
li = [2, 4, 6, 8]
li[2] = 10
print(li) # 输出 [2, 4, 10, 8]
查找
python
li = [1, 4, 2, 6, -1]
li.sort()
print(li) # 输出 [-1, 1, 2, 4, 6]
li.sort(reverse=True)
print(li) # 输出 [6, 4, 2, 1, -1]
3. 元组方法
元组是不可变对象,只有两个常用方法。
查找
python
tu = ('a', 'b', 'a', 'c')
print(tu.index('a', 1)) # 输出 2
print(tu.count('a')) # 输出 2
创建一个变量,并赋给它一个列表(包含数值和文本),进行切片取值,并进行增删改查的操作。
python
li = [1, 2, 'three', 4, 'five']
print(li[2]) # 输出 'three'
li[2] = 'THREE'
print(li) # 输出 [1, 2, 'THREE', 4, 'five']
li.append('six')
print(li) # 输出 [1, 2, 'THREE', 4, 'five', 'six']
li.pop(3)
print(li) # 输出 [1, 2, 'THREE', 'five', 'six']
li.remove('five')
print(li) # 输出 [1, 2, 'THREE', 'six']
创建三个字符串对象,值分别是 'Hello'、'My name' 和 'is tom',用学过的拼接方法去完成拼接结果为 'Hello, My name is tom'。
python
str1 = 'Hello'
str2 = 'My name'
str3 = 'is tom'
result = str1 + ', ' + str2 + ' ' + str3
print(result) # 输出 'Hello, My name is tom'
创建一个变量,并给它赋一个数值(任何数值都可以),然后使用 print
显示这个变量。
python
one = 123
print(one) # 输出 123
改变这个变量,可以用一个新值交换原来的值,或者将原来的值添加某个量,使用 print
显示这个新值。
python
one = 234
print(one) # 输出 234
one += 10
print(one) # 输出 244
创建另一个变量,并赋给它一个字符串('某个文本'),然后使用 print
显示这个变量。
python
st = '我是一串字符串'
print(st) # 输出 '我是一串字符串'
将第三题的变量转换为列表方式和元组方式。
python
lst = st.split()
print(lst) # 输出 ['我是一串字符串']
tst = tuple(st)
print(tst) # 输出 ('我', '是', '一', '串', '字', '符', '串')