python中的元组如果获取其中的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的元组如果获取其中的值相关的知识,希望对你有一定的参考价值。

可以使用for in循环遍历:
namesList = ('xiaoWang','xiaoZhang','xiaoHua')
for name in namesList:
print(name)
或while循环:
namesList = ('xiaoWang','xiaoZhang','xiaoHua')

length = len(namesList)

i = 0

while i<length:
print(namesList[i])
i+=1
python的其他相关内容你可以看一下黑马程序员, 很多在常见的解决思路都可以在里面找到,视频也是免费的,如果需要的话也可以报名课程,看你自己的安排。
参考技术A 元组可以像列表一样被索引。
元组和列表之间的主要区别是元组是不可变的--您不能将元组的元素设置为不同的值,也不能像从列表中添加或删除元素那样添加或删除元素。但除此之外,在大多数情况下,它们的工作原理几乎是一样的。
参考技术B 元组也是序列,可以和列表一样进行切片。

Python - 验证列表中的元组具有相同的长度

【中文标题】Python - 验证列表中的元组具有相同的长度【英文标题】:Python -- validate tuples in a list have the same length 【发布时间】:2018-02-05 18:02:05 【问题描述】:

这是我的代码:

x = [(1, 2, 3), (4, 5, 6)]

for tup in x:
     if len(tup) == 3:
        print(True) 
     else:
        print(False) 

我想验证列表中元组的长度是否为 3。如果列表中的任何元组的值多于或少于 3 个,我想打印单个输出 False。如果所有元组都有 3 个值,那么它应该打印单个输出 True

目前,for 循环产生超过 1 个输出。如何调整 for 循环?

【问题讨论】:

【参考方案1】:

你可以使用all():

if all(len(tup) == 3 for tup in x):
    print(True)
else:
    print(False)

【讨论】:

您收到来自冗余部门的警告!切勿使用 if/else 来打印 True 或 False。直接从all 使用布尔值;) 我同意,但我可能错误地假设 OP 有 2 个逻辑分支并且只是为 MCVE 打印 - 但他确实明确要求打印。我会更新,但@DanilSperansky 已经覆盖了单线。【参考方案2】:

这是一个单行:

print(all(len(t) == 3 for t in x))

【讨论】:

如果我有可用的all 版本,我很确定我永远不会使用set 版本。具体来说,all 更清晰,一旦发现长度错误的元组,它就有能力短路。 set 版本`在做出决定之前总是会查看每个元组。【参考方案3】:

一个方便的解决方案是使用break 关键字和循环操作,如下所示:

x = [(1, 2, 3), (4, 5, 6)]
tupleCheck = True
for tup in x:
    if len(tup) != 3:
       tupleCheck = False # Here, the program realizes that a tuple does not have a length of 3...
       break # and aborts.
print(tupleCheck)

虽然有些多余,但这个解决方案可读性很强。

【讨论】:

与使用列表推导和 all() 相比,代码多且速度慢 @Y0da 我正在尝试采用 OP 的“调整 for 循环”的想法,而不是完全拆除所有东西并制作单线。但是,如果没有提到前面提到的“调整”,使用 list comp + all() 是更好的解决方案。 我得到了动机,但在我看来,这与列表 comp + all() 相比是不可读的,后者更 Pythonic。这种回答(@danil-speransky)帮助大家更pythonic,写出更好的代码=)【参考方案4】:

另一种方法是使用namedTuple。您可以使用它创建您的点列表,而不是检查点列表。 doc.

>>> Point = namedtuple('Point', ['x', 'y'])
>>> p = Point(11, y=22)     # instantiate with positional or keyword arguments

【讨论】:

我真的很喜欢这种方法。最好在创建数据结构时强制对其进行格式化,而不是在使用它的每个点都检查它。【参考方案5】:

这给出了一个对应于每个元组的列表:

x=[(1,2,3),(1,2,2)]
d=[len(a)==3 for a in x]
p=True
for i in d:
    p= i and p
print p

【讨论】:

以上是关于python中的元组如果获取其中的值的主要内容,如果未能解决你的问题,请参考以下文章

Python中的元组(Tuple)

python字符串格式中的元组?

python中的元组

matplotlib 中的 3D 离散热图

我的元组中的那些小“u”是啥? (python 2.7)[重复]

Python中的元组和列表