python基础练习001

本文分享了8个实用的Python列表操作技巧,包括列表反转、元素删除、条件筛选、元素替换等,通过简洁高效的代码实现,帮助提升编程效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在一个老师的付费专栏做了15题,挑选了以下8个好用的记录保留,防止以后忘记

题目1: 反转列表[0,1,2,3,4,5,6,7]

l = [0,1,2,3,4,5,6,7]
# 解法1
print('解法1:', l[::-1])

# 解法2
l.reverse()
print('解法2:', l)

# 解法3
print('解法3:', reversed(l)))

解法2 要注意:l.reverse()是没有返回值得,它是直接对s本身进行了改变

题目2:从列表[True, 1, 0, ‘x’, None, ‘x’, False, 2, True]中删除元素’x’

l = [True, 1, 0, 'x', None, 'x', False, 2, True]
# 解法1
l1 = [i for i in l if i!='x']
print('解法1:', l1)

# 解法2
for i in range(l.count('x')):
    l.remove('x')
print('解法2:', l)

题目3:删除列表中索引号为奇数的元素

l = list(range(10))
# 解法1
del l[1::2]
print('解法1:', l)

# 解法2
l = [for index, i in enumerate(l) if index % 2 == 0]
print('解法2:', l)

# 解法3
print('解法3:', l[::2])

# 解法4
for i in l[1::2]:
	l.remove(i)
print('解法4:', l)

题目4:将列表[3, 0, 8, 5, 7]中大于5元素置为1,其余元素置为0

# 解法1
l = [3, 0, 8, 5, 7]
print('解法1:', [1 if i>5 else 0 for i in l])

# 解法2
for i in range(len(l)):
	if l[i] > 5:
		l[i] = 1
	else:
		l[i] = 0
print('解法2:', l)

题目5:遍历列表[‘x’, ‘y’, ‘z’], 打印每一个元素及其对应的索引号

l = ['x', 'y', 'z']
for index, i in enumerate(l):
    print(index, i)

题目6:将列表[0,1,2,3,4,5,6,7,8,9]拆分为奇数组和偶数组两个列表

# 解法1 如果元素是非连续增长的情况下,此方法不可用
l = list(range(10))
print('偶数组:', l[::2])
print('偶数组:', l[1::2])

# 解法2
b = a = []
for i in range(len(l)):
	if l[i] % 2 == 0:
		a.append(l[i])
	else:
		b.append(l[i])
print(a, b)

题目7:分别根据每一行的首元素和尾元素大小对二维列表[[6,5],[3,7],[2,8]]排序

l = [[6,5],[3,7],[2,8]]
# 解法1
print('根据首元素排序:', sorted(l, keys=lambda x: x[0]))
print('根据尾元素排序:', sorted(l, keys=lambda x: x[-1]))

# 解法2
import numpy as np
data = np.array(l)
print('根据首元素排序:', data[data[:0].argsort()])
print('根据尾元素排序:', data[data[:-1].argsort()])

题目8:对列表[3,0,8,5,7]分别做升序和降序排列

# 解法1
l = [3,0,8,5,7]
l.sort()
print('升序: ', l)
l.sort(reverse=True)
print('降序: ', l)

# 解法2
l = sorted(l)
print('升序: ', l)
l = sorted(reverse=True)
print('降序: ', l)

# 解法3
l = sorted(l)
print('升序: ', l)
l.reverse()
print('降序: ', l)

解法三的思路 各位老铁有想到过吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值