#循环列表
import random
list1=['pens','bags','dogs','cows']
for i in range(len(list1)):
print('Index '+str(i)+' is: '+list1[i])
print(list1[random.randint(0,len(list1)-1)])
#变量赋值,变量数量与列表长度要严格相等
pen,bag,dog,cow = list1
#多重列表
dlist = [['cat','bat'],[1,2,3,4,5]]
dlist[0]
dlist[1][4]
#列表常用操作
spam = ['cat','bat','rat','hat','kate']
spam[1]
spam[-1]
spam[-2]
spam[1:3]
spam[0:-1]
len(spam)
spam[4] = 'kat'
del spam[3:]
spam = spam + ['hat','katee']
spam.index('bat')
spam.remove('rat')
spam.append('MONKEY')
spam.insert(2,'GOOSE')
spam.sort()
spam.sort(reverse=True)
spam.sort(key=str.lower)
print(sorted(spam))
#列表应用与复制 copy() deepcopy()
import copy
list2 = ['a','b','c','d']
yy = list2
cp = copy.deepcopy(list2)
cp[1]=333
cp
list2
yy[1]=222
yy
list2
##列表增加元素
例如:在Python中append 用来向 list 的末尾追加单个元素,如果增加的元素是一个list,那么这个list将作为一个整体进行追加。
li=['a', 'b']
li.append([2,'d'])
li.append('e')
#输出为:['a', 'b', [2, 'd'], 'e']
在Python中 insert 用来将单个元素插入到 list 中。数值参数是插入点的索引。
li=['a', 'b']
li.insert(0,"c")
#输出为:['c', 'a', 'b']
Python中 extend 用来连接 list。
li=['a','b']
li.extend([2,'e'])
#输出为:['a', 'b', 2, 'e']
## 列表元素位置倒序反转
li5.reverse() # 方法一
li1 = ['1','2','3','4','5'] #方法二:循环往前插入
li2 = []
for item in li1:
li2.insert(0,item) # 因为每次循环元素都是从下标为0的位置插入,后插入的元素在最前边
print(li2)
#tuple 元组, 下表方法与列表相同
tuple1 = ('hellp','tup',5)type(('hello',))
type(('hello'))
type(['hello'])
#类型转换
tuple(['cat','dog',5])
list(('cat','dog',5))
list('hello')
# numpy array 与 python list 互相转换
a=([3.234,34,3.777,6.33])
a为python的list类型,将a转化为numpy的array:
np.array(a)
array([ 3.234, 34. , 3.777, 6.33 ])
现在再将a转化为python的list
a.tolist()
# array to list
buy = np.append(0,buy[:])[1:]
print(str(buy.tolist()).count('0, 1'))
#列表推导式与列表解析式效率比较,耗时差异巨大
import timea = []
t0 = time.clock()
for i in range(1,20000):
a.append(i)
print(time.clock() - t0,' seconds process time')
t0 = time.clock()
b = [i for i in range(1,20000)]
print(time.clock() - t0,' seconds process time')
t0 = time.clock()
b = [i**2 for i in range(1,20000) if i%2 ==0]
print(time.clock() - t0,' seconds process time')