首页 > 技术文章 > Python习题集(七)

poloyy 2020-03-21 16:15 原文

每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我!

https://www.cnblogs.com/poloyy/category/1676599.html

 

题目

如果有一个列表a=[1,3,5,7,11]
问题:1如何让它反转成[11,7,5,3,1]
2.取到奇数位值的数字,如[1,5,11]

 

解题思路

问题一:非算法方案

直接调用内置函数或切片

 

问题一:算法方案

  1. for循环,循环次数取列表长度的一半
  2. 头尾对称位置的值互换

 

问题二

切片,设置步长

 

答案

"""
如果有一个列表a=[1,3,5,7,11]
问题:1如何让它反转成[11,7,5,3,1]
"""
# 非算法方案一
a = [1, 3, 5, 7, 11]
a = a[::-1]
print(a)

# 非算法方案二
a = [1, 3, 5, 7, 11]
a.reverse()
print(a)

# 算法
a = [1, 3, 5, 7, 11]
lens = len(a)
for i in range(0, int(lens / 2)):
    a[i], a[lens - i - 1] = a[lens - i - 1], a[i]
print(a)


"""
如果有一个列表a=[1,3,5,7,11]
问题:2.取到奇数位值的数字,如[1,5,11]
"""
a = [1, 3, 5, 7, 11]
a = a[::2]
print(a)

 

推荐阅读