#coding=utf-8
#list
#tuple
#list 数据类型 (列表数据类型)
name_list=[1,'ben',5,7]
print(name_list)
#输出:[1, 'ben', 5, 7]
name_list=list('python')
print(name_list)
#输出:['p', 'y', 't', 'h', 'o', 'n']
print(len(name_list)) #len()求列表长度
#输出: 6
#索引的概念(从0开始)
name_list=[1,'ben',5,7]
print(name_list[1]) #索引不能超过列表长度,否则出现越界
#输出: ben
print(name_list[len(name_list)-1]) #取列表的最后一个元素
#输出: 7
#python 负索引取列表最后一个元素
print(name_list[-1]) #取列表的最后一个元素
#输出: 7
#定义好list之后,又想取改变容器里面的元素
name_list=[1,'angela',4,6]
name_list.append('ben') #append()列表后面追加
print(name_list)
#输出: [1, 'angela', 4, 6, 'ben']
#在列表中间追加
name_list=[1,'angela',4,6]
name_list.insert(1,'ben') #insert() 第一个参数追加的位置,第二个参数追加的元素对象
print(name_list)
#输出: [1, 'ben', 'angela', 4, 6]
#删除元素 pop() 可以无参数,也可以有参数,有返回值
name_list=[1,'angela',4,6]
name_list.pop()
print(name_list)
#输出:[1, 'angela', 4]
name_list=[1,'angela',4,6]
print(name_list.pop(1)) #
#输出:angela
name_list=[1,'angela',4,6]
name_list.pop(1) #
print (name_list) #
#输出:[1, 4, 6]
#删除元素 remove() 删除某个元素
name_list=[1,'angela',4,6]
name_list.remove(4)
print(name_list)
#输出:[1, 'angela', 6]
name_list=[1,'angela',4,6]
name_list.remove('angela')
print (name_list)
#输出:[1, 4, 6]
#替换元素
name_list=[1,'angela',4,6]
name_list[0]='ben' #替换的索引不存在会抛出异常
print(name_list)
#输出: ['ben', 'angela', 4, 6]
#嵌套
name_list=[1,'angela',4,6]
name_list[2]=['ben',89,'li']
print(name_list)
#输出 [1, 'angela', ['ben', 89, 'li'], 6]
#嵌套读取某个元素
name_list=[1, 'angela', ['ben', 89, 'li'], 6]
name_list[2][1]='lei'
print(name_list)
#输出 89
name_list=[1, 'angela', ['ben', ['Angela','lsy'], 'li'], 6]
name_list[2][1][0]=18
print(name_list[2][1][0])
#清空数组
list_a={'ben',3,'wang','lsy'}
list_a.clear()
print(list_a)
#元组(不能添加,删除,替换,重新赋值 )
list_a=[23,5,6,7]
print(tuple(list_a))
#输出 (23, 5, 6, 7)
tuple_a=(2,4,6)
print(list(tuple_a))
#输出 [2, 4, 6]
print(len(tuple_a))
#输出 3
print(tuple_a[0])
#输出 2
print(tuple_a[-1])
#输出 6
tuple_b=(18)
print(type(tuple_b))
#输出 <type 'int'>
tuple_b=(18,)
print(type(tuple_b))
#输出 <type 'tuple'>
tuple_c=(18,19)
print(type(tuple_c))
#输出 <type 'tuple'>
tuple_d=()
print(tuple_d)
#输出 ()
print(type(tuple_d))
#输出 <type 'tuple'>
print(len(tuple_d))
#输出 0
#tuple 不可改变性,tuple嵌套list的时候,list可以改变
tuple_f=(3,5,88,[77,99])
tuple_f[3][0]=66
print(tuple_f)
#输出 (3, 5, 88, [66, 99])
list_c=[4,3,6,(45,67,8)]
list_c[3]=12
print(list_c)
#输出 [4, 3, 6, 12]
#list和tuple
#1都是序列数据类型
#2:容器里的元素都有索引概念
#3:迭代对象 for item in 对象 对象是可迭代的对象
#4:元素的类型可以不相同
#5:都支持负索引
#6:支持切片
#7:获取元素的速度接近一个恒定值
#不同点
#1:list定义好之后可以改变 tuple定义好后不可改变
#list和tuple for item in 对象
print('*******\n')
tuple_g=(3, 5, 88, [66, 99])
for item in tuple_g:
print(item)
print('###########\n')
list_g=[3, 5, 88, (66, 99)]
for item in list_g:
print(item)
#输出
# 3
# 5
# 88
# (66, 99)
print('新内置函数')
#新内置函数
list_new=['angel','ben','lsy']
for index,name in enumerate(list_new):
print(index,name)
#输出 (0, 'angel') (1, 'ben') (2, 'lsy')
#元素排序 sort()无法返回值
list_pai=[23,5,3,67,88,44]
list_pai.sort(reverse=True)
print(list_pai)
#输出 [88, 67, 44, 23, 5, 3]
list_pai.sort(reverse=False)
print(list_pai)
#输出 [3, 5, 23, 44, 67, 88]
list_pai=[23,5,3,67,88,44]
new_list=sorted(list_pai,reverse=True)
print(new_list)
#输出 [88, 67, 44, 23, 5, 3]
#sort()列表方法无返回值,sorted()内置方法,有返回值
list_num=[1,2,3,4,5,6,7,8]
print(list_num[:])
#输出 [1, 2, 3, 4, 5, 6, 7, 8]
print list_num[1:4] #包左不包右
#输出 [2, 3, 4]
print(list_num[1:5:1])
#输出 [2, 3, 4, 5]