python基础学习2- list与tuple

#列表list,字典是可变数据类型,列表项有顺序;字符串,元组tuple是不可变类型
#循环列表
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 time
a = []
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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值