# 列表:有序,可修改
# 格式[元素1, 元素2, 元素3]
# 元素之间使用逗号,分割
# 元素可以是数字、字符串、列表、布尔值
# 支持切片操作,可通过索引取值
# 列表元素是可以被修改的(数据存储是链表的形式,每个元素记录下个元素的位置)
#
# 列表的基本操作
li = [1, 2, 'a', 'b', ['abc', 'defg'], '哈哈']
# 修改
li[1] = 3
print(li)
li = [1, 'a', 'b']
print(li)
# append(元素) # 追加元素
li.append('a')
print(li)
li.append(['c', 'd'])
print(li)
# extend(可迭代对象) #追加可迭代对象的每一个值到列表中
li = [1, 'a', 'b']
li.extend([123, 'aabb'])
print(li)
# clear() # 清空列表
li.clear()
print(li)
# copy() #浅拷贝
li = [1, 'a', 'b']
li_1 = li.copy()
print(li_1)
# count(元素) #列表元素奇数
print(li_1.count('a'))
#index()返回元素在列表中的位置,如果找不到无返回结果
print(li_1.index('a'))
# insert(索引位置, 待插入元素) # 在指定索引位置插入元素
li.insert(0, 'aa')
# pop(0) #默认删除最后一个元素并保存,且li.pop()可以获得删除的元素;可传参pop(索引)删除索引元素
print(li.pop(0))
print(li)
# remove(元素) #删除指定元素,从左侧开始删除第一个
li.remove('a')
print(li)
# 列表删除
# pop() #删除指定索引的元素,且可获取被删除的元素
# remove() #删除指定元素,从左边删除
# del li[0] #删除指定索引的元素
# clear # 清空列表
# reverse() #将列表反转
li.reverse()
print(li)
# sort() #列表排序从小到大
li =[11, 12, 21, 25, 52]
li.sort()
print(li)
li.sort(reverse=True) #从大到小排序
# 排序
#cmp
#key
#sorted
# 字符串和列表类型转换
# 字符串转换成列表,直接转换即可
s = 'abcd'
print(list(s))
#列表转换成字符串的话可以使用while或者join
#若列表包含数值,则使用迭代取值;若全为字符则使用join即可
l = [123, 'ab', 'cd','45']
#此时含有数值,只能迭代拼接
s1 = ''
for i in l:
s1 = s1 + str(i)
print(s1)
l = ['ab', 'cd','45']
#此时含有数值,只能迭代拼接
s1 = ''.join(l)
print(s1)
#元组
#从第几个索引开始取索引序列和值
tu = ('a', 'b', 1, 2, 3,)
for i, v in enumerate(tu,2):
print(i, v)
#结果为
2 a
3 b
4 1
5 2
6 3