一. 获取list属性

1.获取list长度

list=[1,2,3]
len(list)  
# 3

2.遍历list

1. for…in 遍历list中所有元素(i是list元素value)
list=[1,2,3]
for i in list:
    print(i)
'''
1
2
3
'''
2.in range()(i是索引index)
list=[1,2,3]
for i in range(len(list)):
    print(i,list[i])
for x in range(1,len(list)):
    print(x,list[x])
'''
0 1
1 2
2 3
第二个输出
1 2
2 3
'''
3. for…in emenumerate()
list=[3,6,8]
for index,value in enumerate(list):
    print(index,value)

3. list顺序去重逆序

1.list sort()正序排序(会改变原来的list)
list=[3,6,1,2,9,2]
list.sort()
print(list)
# [1, 2, 2, 3, 6, 9]
2.list reverse()逆序(会改变原来的list)
l = [1,2,5,4]
l.reverse()
print(l)
# [4, 5, 2, 1]
3.list[::-1]操作实现逆序
l = [1,2,3,3,4]
print(l[::-1])
# [4, 3, 3, 2, 1]
4.list set()去重是无序的(不改变原list)
l=[2,5,7,7,3,2]
a = list(set(l))
print(set(l))
print(a)
'''
{2, 3, 5, 7}
[2, 3, 5, 7]
'''
5. list set()按原list顺序去重
l=[2,5,7,7,3,2]
print(set(l))
a = list(set(l))
a.sort(key=l.index)
print(a)
'''
{2, 3, 5, 7}
[2, 5, 7, 3]
'''
6. 新建list,判断是否在新list中,若没有则插入 (原list不变,新list不改变原来的顺序)
l = [1,2,3,3,4,2,3,4,5,6,1]
news_l = []
for id in l:
    if id not in news_l:
        news_l.append(id)
print (news_l)
# [1, 2, 3, 4, 5, 6]
7. 求list的所有子集
nums=[1,2,3]
output = [[]]
for i in range(len(nums)):
    for j in range(len(output)):
        output.append(output[j]+[nums[i]])            
print(output)
'''
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
'''

二. 删除list中元素

1.删除list中重复元素

1. set()
list=[1,2,3,3,2,1]
print(set(list) )
# {1, 2, 3}
2. {}.fromkeys().keys()
list=[1,2,3,3,2,1]
newlist={}.fromkeys(list).keys()
print(newlist)
# dict_keys([1, 2, 3])
3. set()+sort()
l=[1,2,3,3,2,1]
newlist=list(set(l))
newlist.sort(key=l.index)
print(newlist)
# [1, 2, 3]
4. 迭代
l=[1,2,3,3,2,1]
newlist=[]
for i in l:
    if not i in newlist:
        newlist.append(i)
print(newlist)
# [1, 2, 3]
5. sort()排序后删除重复的(原list改变)
l=[1,2,3,3,2,1]
l.sort()
last=l[-1]
for i in range(len(l)-2,-1,-1):
    if l[i]==last:
        l.remove(l[i])
    else:
        last=l[i]
print(l)
# [1, 2, 3]
6. sorted()排序,返回无重复数的新list,不改变原list
l=['c','a','b']
t=('b','c','a')
print(sorted(l))
print(sorted(t))
'''
['a', 'b', 'c']
['a', 'b', 'c']
'''

三.修改list中元素

1.批量修改list中元素
l = [1,2,3,3,4]
dict={1:-1,2:-2,3:-3}
rep=[dict[x] if x in dict else x for x in l]
print(rep)
# [-1, -2, -3, -3, 4]

四.新增list和元素

1. list append()(新建了一个list追加)
#筛选出l中的偶数
l = [1,2,3,3,4,2,3,4,5,6,1]
a=[]
for value in  l:
    if value%2==0:
        a.append(value)
    else:
        continue
print(a)
#[2, 4, 2, 4, 6]
2.list insert(index,value)
#筛选出l中的偶数
l = [1,2,3,3,4,2,3,4,5,6,1]
a=[]
for value in  l:
    if value%2==0:
        a.insert(0,value)
    else:
        continue
print(a)
#[6, 4, 2, 4, 2]
3.list extend()在一个list后面追加另一个list(在已存在的列表中添加新的列表内容)
aList = [123, 'xyz', 'zara', 'abc']
bList = [2009, 'manni']
aList.extend(bList)
print(aList)
'''
[123, 'xyz', 'zara', 'abc', 2009, 'manni']
'''

五.查找

1.查某一元素出现次数 count()
l=[111,'abc','cba',111,'abc',111]
print(l.count(111))
'''
3
'''
2.查找某一元素,返回第一个符合元素所在位置 index()
l=[111,'abc','cba',111,'abc',111]
print(l.index(111))
print(l.index('abc'))
'''
0
1
'''

六.list 与其他类型转化

1.两个list组成一个dict
a = ['a1','a2','a3','a4']
b = ['b1','b2','b3']
d = zip(a,b)
print(dict(d)) 
'''
{'a1': 'b1', 'a2': 'b2', 'a3': 'b3'}
''''
2.dict key,value 分别转为一个list
dit = {'name':'zxf',
    'age':'22',
    'gender':'male',
    'address':'dalian'}
lst1 = list(dit)
lst2 = list(dit.values())
print(lst1)
print(lst2)
'''
['name', 'age', 'gender', 'address']
['zxf', '22', 'male', 'dalian']
'''

七.其他操作

1.转置矩阵
@plan A:
A=[[1,2,3],[4,5,6]]
new =[[0]*len(A) for j in range(len(A[0]))]
for i,v1 in enumerate(A):
    for j,v2 in enumerate(A[i]):
        new[j][i]=v2  
print(new)
'''
[[1, 4], [2, 5], [3, 6]]
'''
2.zip()实现转置数组
A=[[1,2,3],[4,5,6]]
new=list(zip(*A))
print(new)
'''
[(1, 4), (2, 5), (3, 6)]
'''
3.zip()接受2个及以上参数
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
res=list(zip(a,b,c))
print(res)
'''
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
'''