python入门12 列表list

列表使用率较高,方法也多。

列表的定义

#coding:utf-8
#/usr/bin/python
"""
2018-11-10
dinghanhua
列表
"""

'''列表 可变数据类型 序列的一种 使用率比较高'''
li = [1,2,3,4]
li2 = ['mon','tue','wed','thu','fri','sat','sun']
li3 = [(1,2),'string',['list']]
li4 = [[1,'apple'],[2,'banana'],[3,'pear']]

列表的操作:

'''索引'''
print(li[0],li[1],li3[-1])

for l in li2:
    print(l,end = ' ')
for index in range(len(li2)):
    print(li2[index],end = '\t')
'''切片'''
print(li[:])
print(li2[::2]) #每2个取一个
print(li2[:-2])
print(li2[1:5])
print(li2[-2:-1])
print(li2[::-1]) #翻转
print(li2[::-2])
'''批量修改、插入、删除数据'''
li2[:5] = ['周一','周二','周三','周四','周五']
print('批量修改之后:',li2)
li2[5:] = []
print( '批量删除之后:',li2)
li2[5:-1] = ['周六','周日']
print( '批量追加之后:',li2)
li2[5:5] = ['随便插入']
print( '批量插入之后:',li2)
li2[:] = []
print( '清空列表:',li2)
li2[:] = ['周一','周二','周三','周四','周五']
'''删除数据'''
del li2[4] #删除索引对应的值
print(li2)
del li2 #删除列表引用
'''列表常用函数'''
li = ['mon','tue','wed','thu','fri','sat','sun']

#最大max 最小min
print('max=%s,min=%s'%(max(li),min(li))) li.append(
'none') print('append 追加一个元素 :',li) print('mon的个数',li.count('mon')) li.insert(1,[1,2]) #插入 print(li) print(li.index([1,2])) #列表中第一个匹配值的索引 ele = li.pop() #弹出最后一个元素并返回 print(ele,li) ele = li.pop(1) #弹出索引对应的元素 print(ele,li) li.extend(['1','2']) #追加列表 print(li) li5 = li.copy() #复制 print(li5,li) li5.remove('wed') #删除对象 print('remove:',li5) li5.reverse() #翻转 print('reverse:',li5) li.sort() #排序 print('sort:',li) li.sort(reverse = True) print('sort(reverse):',li) li.sort(key = len) print('sort(key=len),',li) #sort改变原list print('sorted函数',sorted(li,key = len,reverse = True)) #sorted不改变原list li.clear() #清空 print(li)
'''*列表复制多个  +列表连接'''
linew = li * 2
print(linew)

linew = li + li3
print(linew)

linew += ['test']
print(linew)
'''列表生成器'''
li = [1,2,3,4,5,6]

li2 = [x**3 for x in li] #list的每个值的三次方
print(li2)

li3 =[x**2  for x in li[1::2]] #偶数位置元素的平方,从index=1开始取,每隔2位取一个
print(li3)

li1 = [1,2,3,4]
li2 = [5,6,7,8]
li3 = [ x+y for x in li1 for y in li2  if x%2==0 and y%2==0 ]#li1,li2中偶数相加组成的列表
print(li3)
'''多维列表'''
li = [['title','pubdate','author'],['python','2018-09-01','Praul']]
#取author的值
if 'author' in li[0]:
    index = li[0].index('author')
    author = li[-1][index]
    print('author:',author)
'''zip() 将多个可迭代对象的值挨个取出打包成的tuple,返回tuple的list'''
li  = [['title','pubdate','author','desc'],['python','2018-09-01','Praul']]
li_zip = zip(li[0],li[1])
print(li_zip)
for ele in li_zip:
    print(ele)
'''map(func,iter) 可迭代对象每个元素执行func函数 '''
li_map = map(max,li[0],li[1])
print(type(li_map))
for ele in li_map:
    print(ele)
'''类型转换'''
#list to tuple
li = ['1','2','3','4']
tu = tuple(li)

#list to string
print(tu)
str1 = ''.join(li) #列表项的连接
print(str1)
str2 = str(li)
print(str2) #整个列表作为字符串

# string to list
li_str = list(str1)
print('str to list:',li_str)

li_str2 = list('[1,2,3,4]') #每个字符均转成元素
li_str3 = eval('[1,2,3,4]') #保持原样转成list
print(li_str2)
print(li_str3)

 

the end!

 

posted @ 2018-11-10 22:51  dinghanhua  阅读(289)  评论(0编辑  收藏  举报