为什么这个列表元素会移回列表中?

2024-09-26 18:09:45 发布

您现在位置:Python中文网/ 问答频道 /正文

对于上下文,我尝试创建一个自上而下的显示,其中屏幕只是文本,每次播放器输入时打印文本。这个脚本所做的是向上移动Y,这样我就可以在输入时找到移动播放器的方法

minimap=[
        'HHHHHHHHHHHHHHHHHHHH',
        'H                  H',
        'H                  H',
        'H           HHHHHHHH',
        'H                  H',
        'HHHHHHHH           H',
        'H                  H',
        'H          Y       H',
        'HHHHHHHHHHHHHHHHHHHH']
for li in minimap:
    print(li)
count=0
for b in minimap:
    count+=1
    if count==7:
        soi=b
    elif count==8:
        s2i=b
minimap.pop(7)
minimap.pop(6)
list(soi).pop(11)
list(s2i).pop(11)
list(soi).insert(11,' ')
list(s2i).insert(11,'Y')
minimap.insert(7,soi)
minimap.insert(6,s2i)
for li in minimap:
    print(li)

那么这两条线会发生什么呢

minimap.insert(7,soi)
minimap.insert(6,s2i)

新的、更改的行被插入到旧行的minimap[]位置,旧行被从minimap[]中删除(我这样说是因为我认为这与问题最相关)

然而,情况就是这样:

HHHHHHHHHHHHHHHHHHHH
H                  H
H                  H
H           HHHHHHHH
H                  H
HHHHHHHH           H
H                  H
H          Y       H
HHHHHHHHHHHHHHHHHHHH

(新的小地图:)

HHHHHHHHHHHHHHHHHHHH
H                  H
H                  H
H           HHHHHHHH
H                  H
HHHHHHHH           H
H          Y       H
HHHHHHHHHHHHHHHHHHHH
H                  H

然而,一切都如预期的那样运行,(似乎)8号线和(新)7号线交换了位置。为什么会这样


Tags: in文本forcounts2ili播放器pop
1条回答
网友
1楼 · 发布于 2024-09-26 18:09:45

发生的事情是当你

minimap.insert(7,soi)

您的minimap中只剩下6项,第6项是'HHHHHHHHHHHHHHHHHHHH'

因此,通过将soi插入第7项,实际上是将其放在'HHHHHHHHH'之后

相反,您希望:

minimap.insert(6,soi)
minimap.insert(6,s2i)

minimap.insert(6,s2i)
minimap.insert(7,soi)

相关问题 更多 >

    热门问题