鱼C论坛

 找回密码
 立即注册
查看: 2744|回复: 10

[已解决]每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边

[复制链接]
发表于 2020-5-9 22:16:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?

我的代码:

>>> list=[1, 3, 2, 9, 7, 8]
>>> for i in range(0,5):
        for j in range(0,5):
                if i+j==5:
                        temp=list[i]
                        list[i]=list[j]
                        list[j]=temp

                       
>>> list
[1, 3, 2, 9, 7, 8]
请问我的操作哪里有问题?求指点。
最佳答案
2020-5-10 22:38:40
本帖最后由 yjptx121 于 2020-5-10 22:40 编辑
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(len(a)):
    a.insert(i, a.pop())
    print('第{}的值为: {}'.format(i, a))

第0的值为: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
第1的值为: [9, 8, 0, 1, 2, 3, 4, 5, 6, 7]
第2的值为: [9, 8, 7, 0, 1, 2, 3, 4, 5, 6]
第3的值为: [9, 8, 7, 6, 0, 1, 2, 3, 4, 5]
第4的值为: [9, 8, 7, 6, 5, 0, 1, 2, 3, 4]
第5的值为: [9, 8, 7, 6, 5, 4, 0, 1, 2, 3]
第6的值为: [9, 8, 7, 6, 5, 4, 3, 0, 1, 2]
第7的值为: [9, 8, 7, 6, 5, 4, 3, 2, 0, 1]
第8的值为: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第9的值为: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-9 22:20:24 | 显示全部楼层
那就是倒序咯。这方法就多了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 22:23:32 | 显示全部楼层
什么都不做即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-9 22:28:11 | 显示全部楼层
遍历0-5应该是range(0, 6),而且你这样子会导致i=0, j=5和i=5, j=0的时候都换一次,相当于没换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-9 22:39:45 | 显示全部楼层
Charles未晞 发表于 2020-5-9 22:28
遍历0-5应该是range(0, 6),而且你这样子会导致i=0, j=5和i=5, j=0的时候都换一次,相当于没换


>>> list=[1, 3, 2, 9, 7, 8]
>>> for i in range(0,6):
    for j in range(0,6):
        if i+j==5 and i<j:
            temp=list[i]
            list[i]=list[j]
            list[j]=temp
            list

            
[8, 3, 2, 9, 7, 1]
[8, 7, 2, 9, 3, 1]
[8, 7, 9, 2, 3, 1]
>>>
为什么会这样还错了?我知道我把这道题做复杂了,但是我想知道错在哪?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-10 07:40:25 | 显示全部楼层

我……?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-10 07:41:52 | 显示全部楼层
ba21 发表于 2020-5-9 22:20
那就是倒序咯。这方法就多了。

能不能麻烦你给我介绍一种,我长长见识~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 09:46:50 | 显示全部楼层
姜饼人 发表于 2020-5-10 07:41
能不能麻烦你给我介绍一种,我长长见识~

>>> l=[1, 3, 2, 9, 7, 8]
>>> l.reverse()
>>> l
[8, 7, 9, 2, 3, 1]

>>> l=[1, 3, 2, 9, 7, 8]
>>> l2 = list(reversed(l))
>>> l2
[8, 7, 9, 2, 3, 1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-10 21:40:40 | 显示全部楼层
ba21 发表于 2020-5-10 09:46
>>> l=[1, 3, 2, 9, 7, 8]
>>> l.reverse()
>>> l

谢谢你让我接触到reverse(),长知识了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-10 22:38:40 | 显示全部楼层    本楼为最佳答案   
本帖最后由 yjptx121 于 2020-5-10 22:40 编辑
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(len(a)):
    a.insert(i, a.pop())
    print('第{}的值为: {}'.format(i, a))

第0的值为: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
第1的值为: [9, 8, 0, 1, 2, 3, 4, 5, 6, 7]
第2的值为: [9, 8, 7, 0, 1, 2, 3, 4, 5, 6]
第3的值为: [9, 8, 7, 6, 0, 1, 2, 3, 4, 5]
第4的值为: [9, 8, 7, 6, 5, 0, 1, 2, 3, 4]
第5的值为: [9, 8, 7, 6, 5, 4, 0, 1, 2, 3]
第6的值为: [9, 8, 7, 6, 5, 4, 3, 0, 1, 2]
第7的值为: [9, 8, 7, 6, 5, 4, 3, 2, 0, 1]
第8的值为: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
第9的值为: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-11 07:41:09 | 显示全部楼层
yjptx121 发表于 2020-5-10 22:38
第0的值为: [9, 0, 1, 2, 3, 4, 5, 6, 7, 8]
第1的值为: [9, 8, 0, 1, 2, 3, 4, 5, 6, 7]
第2的值 ...

谢谢,我一直想知道的就是怎么用循环语句一次性倒序转换,虽然没有reverse简单。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 19:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表