在 Python 中将多个变量附加到列表中
问题描述
我想将几个变量附加到一个列表中.变量的数量不同.所有变量都以volume"开头.我在想也许是通配符或其他东西可以做到.但我找不到这样的东西.任何想法如何解决这个问题?请注意,在此示例中它是三个变量,但也可以是五个或六个或任何值.
I want to append several variables to a list. The number of variables varies. All variables start with "volume". I was thinking maybe a wildcard or something would do it. But I couldn't find anything like this. Any ideas how to solve this? Note in this example it is three variables, but it could also be five or six or anything.
volumeA = 100
volumeB = 20
volumeC = 10
vol = []
vol.append(volume*)
解决方案
您可以使用 extend
将任何可迭代对象附加到列表中:
You can use extend
to append any iterable to a list:
vol.extend((volumeA, volumeB, volumeC))
根据你的变量名的前缀对我来说有一种不好的代码味道,但你可以做到.(附加值的顺序未定义.)
Depending on the prefix of your variable names has a bad code smell to me, but you can do it. (The order in which values are appended is undefined.)
vol.extend(value for name, value in locals().items() if name.startswith('volume'))
如果顺序很重要(恕我直言,仍然闻起来不对):
If order is important (IMHO, still smells wrong):
vol.extend(value for name, value in sorted(locals().items(), key=lambda item: item[0]) if name.startswith('volume'))
相关文章