创建普通数组
>>> member=["山东黄金","九阳股份"]
>>> member
['山东黄金', '九阳股份']
创建混合数组(数组中存放各种类型的数据)
>>> mix=[1,2.3,"520",["Haha"]]
>>> mix
[1, 2.3, '520', ['Haha']]
创建一个空数组
>>> empty=[]
>>> empty
[]
向数组中添加元素
append(), 追加一个元素到数组末尾
extend(), 用一个列表扩展另一个列表,也是将元素追加到末尾
insert(), 将一个元素插入到数组指定的位置
>>> member.append("深圳机场")
>>> len(member)
3
>>>
>>> member.extend(["招商轮船","平安银行"])
>>> member
['山东黄金', '九阳股份', '深圳机场', '招商轮船', '平安银行']
>>> len(member)
5
>>> member.insert(2,"沱牌舍得")
>>> member
['山东黄金', '九阳股份', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']
>>>
获取数组中某个元素
>>> member[1]
'九阳股份'
>>>
>>> member[1] = "九阳股份-九阳神功"
>>> member
['山东黄金', '九阳股份-九阳神功', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']
>>>
删除数组中的元素
remove(),删除指定名称元素, 如果指定的值不存在,会报错
del ,它是一个语句,不是方法,可以删除整个数组,也可以删除指定位置的元素
pop() ,从数组中删除最后一个元素,并返回这个值,也可以去除指定下标的元素
>>> member.remove("山东黄金")
>>> member
['九阳股份-九阳神功', '沱牌舍得', '深圳机场', '招商轮船', '平安银行']
>>> del member[1]
>>> member
['九阳股份-九阳神功', '深圳机场', '招商轮船', '平安银行']
>>>
>>>
>>> last = member.pop()
>>> member
['九阳股份-九阳神功', '深圳机场', '招商轮船']
>>> last
'平安银行'
>>> item=member.pop(1)
>>> member
['九阳股份-九阳神功', '招商轮船']
>>> item
'深圳机场'
>>>
列表分片: 可以实现一次性获取多个元素
>>> member[0:1] # 这个是拷贝出来的内容,原数组不变
['九阳股份-九阳神功']
>>> member
['九阳股份-九阳神功', '招商轮船']
>>>
>>> member[:1] #下标为1之前的都获取到
['九阳股份-九阳神功']
>>> member[1:] #从下标为1开始获取
['招商轮船']
>>> member[:] #获取整个数组
['九阳股份-九阳神功', '招商轮船']
>>>
两个冒号是每隔多少个取
[1::2],从下标1开始,每隔2个取值
[::2],从下标0开始,每隔2个取值
典型的就是取100以内的奇偶数
# 列表切片例子
# 查找列表当中‘yang’元素出现的位置
name_list = ['huang','yang','zhang','li','qian','yang','hu','gao']
first_pos = 0
#统计‘yangw’出现的次数,根据次数循环找位置
for i in range(name_list.count('yang')):
#下一次查找的子列表
new_list = name_list[first_pos:]
# 下一次查找的位置
next_pos = new_list.index('yang') + 1
print ('Find Position:',first_pos + new_list.index('yang'))
first_pos += next_pos
'''
#1 new_list = ['huang','yang','zhang','li','qian','yang','hu','gao']
next_pos = 1 + 1
first_pos = 0 + 2
#2 new_list =['zhang','li','qian','yang','hu','gao']
next_pos = 3 +1
first_pos = 3 + 4
'''
元素在不在数组中, 可以使用 in 或 not in
>>>
>>> "awei" not in member
True
>>> "招商轮船" in member
True
>>>
#指定元素出现的次数
>>> member.count("haha")
0
>>> member.count("招商轮船")
1
# 指定元素在数组中的位置
>>> member.index("招商轮船")
1
>>>
翻转数组
>>> member.reverse()
>>> member
['招商轮船', '九阳股份-九阳神功']
>>>
排序 sort ,它是一种归并排序
>>> member.sort()
>>> member
['九阳股份-九阳神功', '招商轮船']
>>>
>>> member.sort(reverse=True)
>>> member
['招商轮船', '九阳股份-九阳神功']
>>>
再次强调,
>>> member1=member[:] #是一种数组的拷贝
>>> member1
['招商轮船', '九阳股份-九阳神功']
>>> member2=member #不是拷贝,引用着同一个数组
>>> member2
['招商轮船', '九阳股份-九阳神功']
>>> member.sort()
>>> member1
['招商轮船', '九阳股份-九阳神功']
>>> member2
['九阳股份-九阳神功', '招商轮船']
>>>
元组tuple和数组是非常相近的,只是元组是不能被修改的
对于元组来说, 逗号是关键,小括号不一定非要有
>>> items=("九阳","大船","平安","黄金")
>>> items
('九阳', '大船', '平安', '黄金')
>>> items[2]
'平安'
>>> items[:1]
('九阳',)
>>> items[2:]
('平安', '黄金')
>>> items2=items[:]
>>> items2
('九阳', '大船', '平安', '黄金')
>>>
元组能不能变相改变呢,答案是可以的.
>>> items2 = items2[:1]+("白云山",)+items2[1:]
>>> items2
('九阳', '白云山', '大船', '平安', '黄金')
>>>
>>> str1= 'cxn ,wo yao cao ni !'
>>> str1
'cxn ,wo yao cao ni !'
>>> #取字符串的某个字符,直接跟数组一样,使用下标方式
>>> str1[1]
'x'
>>> #它也像元组一样,可以使用分片
>>> #它跟元组一样,也是不可改变的,我们可以利用切片的方式改变
>>> str2 = str1[:5]+"我插入进来了啊" + str1[5:]
>>> str2
'cxn ,我插入进来了啊wo yao cao ni !'
>>>
>>> #字符串的方式有很多
>>>
>>> # 1. 将字符串第一个字母改为大写
>>> str3="wo xiang ri nv ren !";
>>> str3.capitalize()
'Wo xiang ri nv ren !'
>>> str3
'wo xiang ri nv ren !'
>>>
>>> # 把整个字符串的所有字符改为小写
>>>
>>> str4=" I LIKE YOU"
>>> str4.casefold()
' i like you'
>>>
>>> #字符串居中,并使用空格填充至长度width的新字符串
>>>
>>> str4.center(20)
' I LIKE YOU '
>>>
>>> #返回sub在字符串中出现的次数,start end表示范围(可选)
>>> str4.count("e")
0
>>> # 对字符串进行编码
>>> str4="杨伟"
>>> str4.encode(encoding="utf-8",errors="strict")
b'\xe6\x9d\xa8\xe4\xbc\x9f'
>>>
>>> # 检查字符串是否以sub字符串结束,返回 True | False
>>>
>>> str4.endswith("伟")
True
>>> # endswith(sub [,start] [,end])方法
>>>
>>>
>>> #把字符串中的 tab符号(\t)转换为空格,如果不指定参数,默认空格是8
>>> #expandtabs([tabsize=8])
>>> str4="I\tlove\tyou"
>>> str4.expandtabs()
'I love you'
>>>
>>> #检测sub是否包含在字符串中,如果有返回索引值,否则返回-1
>>> #find(sub [,start] [,end])
>>> str4.find("you")
7
>>> #index(sub [,start][,end]),与find一样,不过如果sub不在sring中会抛异常
>>> str4.index("you")
7
>>> str4.index("ni")
Traceback (most recent call last):
File "<pyshell#55>", line 1, in <module>
str4.index("ni")
ValueError: substring not found
>>>
>>> # 有很多判断字符串的方法,以 is开头,这么不再说明
>>>
>>> # join(sub) 以字符串作为分隔符,插入到sub中所有的字符之间
>>> str4.join("123")
'1I\tlove\tyou2I\tlove\tyou3'
>>> # 使用join比起 字符串+的操作更节约内存开销
>>> a = ['a','b','c']
>>>
>>> b = ''.join(a)
>>> b
'abc'
>>>
>>> # lower()小写 , upper() 大写
>>> # ljust(width) 返回一个左对齐的字符串,并使用空格填充至width长度
>>>
>>> str4.ljust(20)
'I\tlove\tyou '
>>>
>>> #lstrip() 去掉字符串左边的所有空格
>>> str4=" 123456"
>>> str4
' 123456'
>>> str4.lstrip()
'123456'
>>>
>>> #rstrip() 去掉字符串右边的所有空格
>>>
>>> #partition(sub) 找到子字符串sub,把字符串分成3个元组(pre_sub,sub,fol_sub),r如果字符串中不包含sub,返回('原字符串',"","")
>>>
>>> str5=" ni hao ma ,qinqin"
>>> str5.partition("qin")
(' ni hao ma ,', 'qin', 'qin')
>>>
>>> # replace(old,new,[,count]) 字符串替换,如果指定count次,则替换不超过count次
>>>
>>> str5.replace("qin","exin")
' ni hao ma ,exinexin'
>>>
>>> ##有一些以r开始的方法,表示从右边开始查找等等,不再赘述
>>>
>>> #split(sep=None,maxsplit=-1) 不带参数默认以空格切分,返回数组
>>> str5.split()
['ni', 'hao', 'ma', ',qinqin']
>>> str5.split("q")
[' ni hao ma ,', 'in', 'in']
>>>
>>> # 去掉字符串前后空格
>>> #strip([chars]), chars参数可以定制删除的字符
>>>
>>> str5.strip();
'ni hao ma ,qinqin'
>>>
>>> #swapcase() 翻转字符串的大小写
>>>
>>># max(str) max(str) , 寻找字符串中的最大字符 min(str), 寻找字符串中的最小字符
>>> #字符串格式化
>>> #1,使用位置参数表示
>>> "{0} love {1}.{2}".format("I","fishc","com")
'I love fishc.com'
>>> #关键字参数 # 关键字参数必须指定谁的值是多少
>>> "{a} love {b}.{c}".format(a="I",b="fishc",c="com")
'I love fishc.com'
>>>
>>> # 位置参数和关键字参数也可以一起使用,但是位置参数必须在前面
>>>
>>> "{0} love {b}.{c}".format("I",b="fishc",c="com")
'I love fishc.com'
>>>
>>> #{}也是可以被转义的,它使用{}转义
>>>
>>> print("{{0}}".format("不打印"))
{0}
>>>
字符串格式化符号含义及转义字符含义
http://bbs.fishc.com/thread-39140-1-1.html(出处: 鱼C论坛)
>>> # 字符串,数组,元组 都是可迭代对象
>>> # list() 是将可迭代的对象转换为数组
>>> a="12345"
>>> list(a)
['1', '2', '3', '4', '5']
>>> # tuple([iterable]),把一个可迭代对象转换为元组
>>> # str(obj) ,把一个对象转换为字符串
>>>
>>> # len(sub), 返回参数的长度
>>>
>>> len(a)
5
>>> #max(),返回序列或者参数集合中的最大值
>>> max(list(a))
'5'
>>> numbers=(1,4,-5,10)
>>> max(numbers)
10
>>> #min(), 与max()使用方式一样
>>> # 使用max()、min()方法,序列(数组、元组、字符串)的类型必须是一样的
>>>
>>> b=["1","2","3",4]
>>> max(b)
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
max(b)
TypeError: unorderable types: int() > str()
>>>
>>> b.pop()
4
>>> max(b)
'3'
>>> # sum(iterable[,start=0]) ,返回序列iterate和可选参数start的总和
>>>
>>> # 迭代器中也必须是相同类型,才能做相加操作
>>>
>>>
>>> # sorted(),排序
>>> sorted(numbers)
[-5, 1, 4, 10]
>>> # reversed() ,它返回的是迭代器对象
>>> reversed(numbers)
<reversed object at 0x02168ED0>
>>> list(reversed(numbers))
[10, -5, 4, 1]
>>>
>>> # enumerate(),枚举列表,结果是键值对形式组成的数组
>>>
>>> enumerate(numbers)
<enumerate object at 0x021710D0>
>>> list(enumerate(numbers))
[(0, 1), (1, 4), (2, -5), (3, 10)]
>>>
>>> # zip()方法,还是看例子就明白了
>>> a1 = [1,2,3,4,5,6]
>>> a2 = [3,4,5,6]
>>> zip(a1,a2)
<zip object at 0x021711C0>
>>> list(zip(a1,a2))
[(1, 3), (2, 4), (3, 5), (4, 6)]
>>>
元组与列表的区别:
元组是不可改变的,列表是可以改变的;
元组和列表之间是可以相互转换的, 元组转成列表使用 list(), 列表转成元组tuple()
元组一般就使用两个方法 index()和count() 方法.