当前位置:首页 > python > 正文

python输入列表

  • python
  • 2024-06-12 13:01:37
  • 7965
一、python如何从键盘输入列表?

要从键盘输入列表,您可以将input()函数与列表理解结合使用。 您可以在以下示例代码中格式化您的输入:

上面的代码将从键盘读取一个字符串,其中包含由空格分隔的元素。 然后split()函数将字符串拆分为列表,并使用int()函数将每个元素转换为整数类型。 最后,您将在名为my_list的变量中存储一个整数列表。

如果要输入字符串列表而不是整数列表,可以省略int()函数,直接使用以下代码:

Here在这种情况下,将获得字符串列表。

二、python小白的问题?您好,您的问题其实很容易理解:
fornumberinrange(0,30):
aliens.append(alien)
您这一步的目的是将30添加到外星人列表中。 输入相同的外星人词典。 当缺少下面的代码时,执行这两条语句并输出外星人后,实际上可以看到想要的结果,即字典中有30个相同的外星人字典。
但问题是,如果直接将Alien字典名称作为参数放入Aliens.append()函数中,则传递给Appends()函数的实际上是Alien在内存中的地址,即传递-通过链接。 例如:
有一个字典
dic={'a':'b'}//当前为dic分配的内存地址例如是0x11111111-0x22222222
有一个空列表li=[]
现在我想将2个相同的dic附加到空li列表中,然后如果我写:
foriinrange(2):
li.append(dic) 但是由于两个元素读取的都是0x11111111-0x22222222范围内的内容,所以我们对每个li中的每个字典键值的修改都会影响列表中所有元素中对应的键值。
解决方案:
很简单,只需将
aliens.append(alien)
替换为
aliens.append(alien.copy())
即----------
其实在添加字典的时候,就是在字典中额外添加了一个copy()函数,只不过含义不同而已。 这样,每个首次添加到陌生人列表的字典都会在另一个块中存储陌生人字典的备份副本,然后将数据从备份地址传输到陌生人列表。 我们以上面给出的li和dic为例。 原始dic数据位于内存中的地址是0x11111111-0x22222222。 然后,当我附加到li时,我使用dic.copy()那么实现过程与我的类似。 copying0x11111111-0x22222222例如,复制的分配内存是0x33333333-0x44444444,然后第二次添加时我仍然复制0x11111111-0x22222222。 例如,分配给备份的内存是0x55555555-0x66666。 666.目前li中有两个元素,字典的第一个元素实际上取0x33333333-0x44444444范围内的地址,第二个元素取地址0x55555555。 因此,由于地址是.li列表中的每个字典元素都是不同的,以后li中的每个字典元素发生变化时,只会影响对应范围内的数据,即互不干扰。
如果你不要这样做,如果你不明白,你可以问。