在 Python 中将多个变量附加到列表中

2022-01-22 00:00:00 python list append

问题描述

我想将几个变量附加到一个列表中.变量的数量不同.所有变量都以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'))

相关文章