'''
列表类型 可变序列,列表序列的一种所以可以使用序列的相关操作,
可以加,可以乘
声明方式
1、 列表名 = ['张三','李四']
2. 列表名 = list('hello,python')
'''
strList = ['张三','李四','王五']
print('strList: ',strList)
estrList = list('hello,python')
print('estrList: ',estrList)
list3 = list(range(1,10,2))
print('list3: ',list3)
# 相加,相同数据类型才可以,否则报错,
print('序列相加:')
print(strList + estrList + list3)#这三个类型都是list
print('序列相乘:')
print('-' * 40) # - 打印40次
print('序列相乘 strList打印3次:')
print(strList * 3)
# 删除序列
list4 = ['a','b','c']
print('list4:',list4)
del list4 #删除序列
# print('list42:',list4)#不存在会报错
# 列表的遍历操作
print('列表的遍历操作')
print('方式1:')
for item in strList:
print(item)
print('方式2:')
for i in range(len(strList)):
print(f'索引:{i} : {strList[i]}')
print('方式3:')
# index 是序号,可指定
for index,item in enumerate(strList):
print(f'序号:{index} => {item}')
print('方式4:')
# index 是序号,可指定
for index,item in enumerate(strList,start=1):
print(f'序号:{index} => {item}')
# 列表生成式
nums = [1,2,3,4,5,6,7,8,9]
print('nums :',nums)
# 添加元素,内存地址不变
nums.append(10)
print('nums 添加元素:',nums)
# 在0索引中插入 11,内存地址不变
nums.insert(0,11)
print('nums 插入元素:',nums)
# 将列表中第index位置的元素取出,并从列表中将其删除,内存地址不变
n = nums.pop(5)
print(f'nums 取出并删除5:{n},',nums)
# 删除元素,内存地址不变
nums.remove(6)
print('nums 删除6:',nums)
# 列表元素反转,在原列表中进行反转,内存地址不变
nums.reverse()
print('nums 列表元素反转:',nums)
# 复制出一个新的列表,新的内存地址
numsNew = nums.copy()
print(f'复制出一个新的列表,原内存地址:{id(nums)},nums={nums}')
print(f'复制出一个新的列表,新的内存地址:{id(numsNew)},numsNew={numsNew}')
# 排序
# 两种方式
# 方式1 列表对象的Sort()方法 : lst.sort(key=None,reverse=False) 参数说明:key表示排序的规则,reverse表示排序方式,默认为False升序,True为降序
# 方式1 的所方法都是对原列表进行修改。
# 方式2 内置函数Sorted() : sorted(iterable,key=None,reverse=False) 参数说明:iterable表示排序的对象 如一个列表名为lst
# 方式2 排序不会对原列表产生影响,而是产生一个新的列表,两个ID不同,原列表不会受影响
print(f'排序前:{nums},id={id(nums)}')
#降序排列
nums.sort(reverse=True)
print(f'排序后:{nums},id={id(nums)}')
#升序排列
nums.sort()
print(f'排序后_升序:{nums},id={id(nums)}')
# 字符串列表 先排大写,再排小写,因为大写的ASCLL码值比小写的要小32
strList10 = ['banana','apple','Cat','Orange']
print(f'字符串列表排序 strList10:{strList10}')
strList10.sort()
print(f'字符串列表排序 strList10 升:{strList10}')
strList10.sort(reverse=True)
print(f'字符串列表排序 strList10 降:{strList10}')
nums100 = [4,56,3,78,40,65,89]
print(f'nums100:{nums100},id={id(nums100)}')
# 排序方式2 , 升序,返回一个新的列表,所以要用变量接收一下
nums101 = sorted(nums100)
print(f'nums101:{nums101},id={id(nums101)}')
print(f'nums100:{nums100},id={id(nums100)}')
# 排序方式2 , 降序,返回一个新的列表,所以要用变量接收一下
nums102 = sorted(nums100,reverse=True)
print(f'nums102:{nums102},id={id(nums102)}')
print(f'nums100:{nums100},id={id(nums100)}')
# 生成一个1-10的列表
numList1 = [item for item in range(1,11)]
print('生成一个1-10的列表:',numList1)
numList2 = [item * item for item in range(1,11)]
print('生成一个1-10的列表2:',numList2)
# 如果for 后的变量不用可以用 _ 来替换
numlist3 = [random.randint(1,100) for _ in range(10)]
print('生成一个10随机数的列表3:',numlist3)
# 从列表中选择符合条件的元素组成的新列表
numlist4 = [item for item in range(10) if item%2==0]
print('获取0-10之间的偶数列表:',numlist4)
# 二维列表
# 创建二维列表
twoList = [
['城市','环比','同比'],
['苏州',101,102],
['北京',99,105],
['上海',110,130]
]
print('twoList:',twoList)
# 遍历 yndl 二维列表
for row in twoList: #外层控制行
for item in row: #内层控制列
print(f'{item}',end='\t')
print() #换行
# 生成4行5列的二维列表
list5 = [ [i for i in range(4) ]for j in range(5) ]
print('list5:',list5)
python12 列表类型
于 2024-06-06 09:48:10 首次发布