当其他值未使用时从元组中提取a值

Jam*_*ong 11 python

我有一个元组foo,其中包含我不关心的东西和我做的事情.

foo = (something_i_dont_need, something_i_need)
Run Code Online (Sandbox Code Playgroud)

使用起来更正确吗?

_, x = foo
Run Code Online (Sandbox Code Playgroud)

要么

x = foo[1]
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的是不同的行为,如果foo不是长度为2.我认为这是相当具体的案例,但这是事实上的pythonic做事方式之一吗?

tan*_*orm 11

我已经使用_了十多年了.它更具可读性,尤其是在提取多个值时:

  _, _, name, _, _, city, _ = whatever
Run Code Online (Sandbox Code Playgroud)

即使只有一个变量,另一种方式是强迫人类读者在他们想要真正理解代码的情况下进行计数,更可能的是他们的眼睛只是要通过它.

使用下划线,您可以更好地利用人类大脑的模式匹配能力.可能是一件小事,但在调试时每一点都有帮助.:)


MAK*_*MAK 8

我认为通常的做法

x=foo[index]
Run Code Online (Sandbox Code Playgroud)

使用_不太常见,我认为也不鼓励._当你只需要一个long tuple/中的几个元素时,使用也很笨重list.当您只选择连续的子序列时,切片也很方便.

但在一天结束时,我认为这只是一个主观偏好的问题.使用对您和您的团队来说更具可读性的任何内容.