python12 列表类型

'''
列表类型 可变序列,列表序列的一种所以可以使用序列的相关操作,
可以加,可以乘
声明方式
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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StevenChen85

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值