可变字符串
import io
s = 'he'
sio = io.StringIO(s)
>>>sio
'he'
基本运算符
>>>a = 4
>>>3<a<10
True
位操作
最后一个是异或 就是a,b不一样的是1 一样的是0
LIST
List创建
a = list()
a = []
a = list("gaoqi")
>>>a
['g','a','o','q','i']
>>> a = range(10)
>>> a
range(0, 10)
>>> type(a)
<class 'range'>
>>> list(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
range()创建整数列表(很方便)
range([start], end [,step])
>>> list(range(0, 10 ,1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(3, 20 , 2))
[3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> list(range(3, 20 , -1))
[]
>>> list(range(20 ,3, -1))
[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
**
推倒式
>>> a = [x*2 for x in range(5)]
>>> a
[0, 2, 4, 6, 8]
>>> a = [x*2 for x in range(100) if x%9 == 0] #加了过滤
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
>>>
列表元素的增加和删除
一般只在尾部添加删除 尽量不在中间
增加
1. append()
>>> a = [20,40]
>>> a.append(100)
>>> a
[20, 40, 100]
2. +运算符
>>> id(a)
2232562900872
>>> a = a+[50]
>>> a
[20, 40, 100, 50]
>>> id(a)
2232562964040
3. extend() ——用来把2个list合并比append好用
>>> a.extend([100,90])
>>> a
[20, 40, 100, 50, 100, 90]
- insert()——插入元素
>>> a = [10, 20, 30]
>>> a . insert(2, 100)
>>> a
[10, 20, 100, 30]
乘法拓展
>>> a
[10, 20, 100, 30]
>>> a*3
[10, 20, 100, 30, 10, 20, 100, 30, 10, 20, 100, 30]
list删除
- del 删除———不提倡使用,从中间加元素很浪费内存
>>> a = [10, 20 ,30]
>>> del a[1]
>>> a
[10, 30]
(做的是复制的工作其实)
- pop()——默认返回最后一个值
>>> a = [10, 20 ,30]
>>> a.pop()
30
>>> a
[10, 20]
>>> a.pop(1)
20
>>> a
[10]
>>>
- remove() ——元素不存在会报错
>>> a= [10, 20, 30 ,40 ,50 ,60,70]
>>> a.remove(20)
>>> a
[10, 30, 40, 50, 60, 70]
- index()获得指定元素
>>> a = [10, 20, 30, 40, 50, 20, 30, 20, 30]
>>> a.index(20)
1
>>> a.index(20, 3)#从索引位置3开始往后搜索的第一个20
5
>>> a.index(30, 5, 7)#从索引位置5到7这个区间,第一次出现30的位置
6
>>> a.index(20, 5, 7)
5
>>>
-
count()
-
len()
切片操作
a = [10, 20, 30, 40, 50, 60, 70]
>>> a[1:6:2]
[20, 40, 60]
>>> a[1:6:1]
[20, 30, 40, 50, 60]
>>> a[1::2]
[20, 40, 60]
>>> a[1::1]
[20, 30, 40, 50, 60, 70]
>>> a[-5:-3]
[30, 40]
>>> a[-5:3]
[30]
>>> a[::-1]
[70, 60, 50, 40, 30, 20, 10]
列表排序(不建新列表)
>>> a = [20, 10 ,30 ,40]
>>> a.sort()#默认升序
>>> a
[10, 20, 30, 40]
>>> a.sort(reverse=True)#也可以降序
>>> a
[40, 30, 20, 10]
>>> import random
>>> random.shuffle(a) #打乱顺序
>>> a
[40, 20, 30, 10]
>>> random.shuffle(a)
>>> a
[30, 10, 40, 20]
建立新列表
>>> a = [20, 10, 30, 40]
>>> id(a)
2232562989704
>>> a = sorted(a)
>>> id(a)
2232563116168
>>>
多维列表
元组
>>> b = tuple()
>>> b
()
>>> b = tuple(range(3))
>>> b
(0, 1, 2)
>>> b = tuple([2,3,4])
>>> b
(2, 3, 4)
>>> del b
>>> b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
>>>
>>> a = (20, 30, 10, 9, 8)
>>> a[1]
30
>>> a[1:3]
(30, 10)
>>> a[1] = 300
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
zip函数
>>> a = (10, 20, 30)
>>> b = (20, 30, 40)
>>> c = (13, 31, 51)
>>> d = zip(a,b,c)
>>> list(d)
[(10, 20, 13), (20, 30, 31), (30, 40, 51)]
生成器推导式创建元组
>>> s = (x*2 for x in range(5))
>>> s.__next__()
0
>>> s.__next__()
2
>>> s.__next__()
4
>>> s.__next__()
6
>>> s.__next__()
8
>>> s.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>>