首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >随机选择元组集,然后从原始元组列表中删除自身。

随机选择元组集,然后从原始元组列表中删除自身。
EN

Stack Overflow用户
提问于 2013-12-20 04:48:15
回答 2查看 103关注 0票数 1

我一直在尝试.remove()del,但由于某些原因,我无法删除一个元组.

代码语言:javascript
运行
复制
listpack_list = (["data", "data", "data"], ["test", "test", "test"], ["sof", "sof", "sof"])

理想情况下,我希望随机选择一个元组列表,例如:["test", "test", "test"]

第一个变量listpack_list[1][0]将被打印出来,另外两个元素将被放入变量Main1和Main2中,然后它将继续从listpack_data中删除自己。

每次它随机选择一个元组集时,它都会执行打印和更改变量删除操作。

关于我如何做到这一点,有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-20 04:52:40

  1. 不能从元组中删除项目,因为它是不可变的。
  2. 因此,选择要删除的项,并将必要的值复制到变量中。
  3. 然后使用理解,在没有特定元素的情况下重建元组。 listpack_list =(“数据”、“测试”、"sof“、"sof”、"sof")导入随机rem = random.randrange(3) varToBePrinted、Main1、Main2 = listpack_listrem listpack_list =tuple(索引项、枚举项(Listpack_list)中的项)如果索引!= rem)打印varToBePrinted
票数 3
EN

Stack Overflow用户

发布于 2013-12-20 05:18:42

首先,正如其他人所说,元组是不可变的。您不能更改元组的位置,但您可以通过订阅或理解元组来创建新元组。

如果您正在讨论对元组中的列表进行处理,请小心,因为Python中的内容在这里变得很奇怪。你可以用pop把整件事弄清楚:

代码语言:javascript
运行
复制
In [11]: listpack_list = (["data", "data", "data"], ["test", "test", "test"], ["sof", "sof", "sof"])

In [12]: listpack_list[0].pop()
Out[12]: 'data'

In [13]: listpack_list
Out[13]: (['data', 'data'], ['test', 'test', 'test'], ['sof', 'sof', 'sof'])

虽然其他操作似乎失败,但仍然有效(!):

代码语言:javascript
运行
复制
In [13]: listpack_list
Out[13]: (['data', 'data'], ['test', 'test', 'test'], ['sof', 'sof', 'sof'])

In [14]: listpack_list[1] += ['test']
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-68991a0001f4> in <module>()
----> 1 listpack_list[1] += ['test']

TypeError: 'tuple' object does not support item assignment

In [15]: listpack_list
Out[15]: (['data', 'data'], ['test', 'test', 'test', 'test'], ['sof', 'sof', 'sof'])

因此,因为不可变元组包含可变列表,所以可以更改元组内部的内容,但这肯定不是最好的方法。如果您对实现有控制,只需在开始的步骤中列出列表而不是元组。如果你不这样做,我建议你用一个理解的方法来得到一个列表,然后处理这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20696487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档