python双列表元素分配_关于python:如何将列表的每个元素分配给单独的变量?

如果我有清单,请说:

ll = ['xx','yy','zz']

我想将此列表的每个元素分配给一个单独的变量:

var1 = xx

var2 = yy

var3 = zz

不知道列表有多长,我该怎么办? 我试过了:

max = len(ll)

count = 0

for ii in ll:

varcount = ii

count += 1

if count == max:

break

我知道varcount不是创建动态变量的有效方法,但是我想做的是根据计数来创建var0,var1,var2,var3等。

编辑::

没关系,我应该开始一个新的问题。

你到底为什么要这样做?

变量只是名称。 ll[0], ll[1], ll[2] ...等有什么问题?

用例是什么?看起来是什么可以重新考虑您的方法

当您只需要从已有容器中访问它时,为什么要将某物移动到另一个容器中?

我正在进行API调用,我需要解析一个csv文件以提取输入到我的API调用中的数据。

使用csv模块有什么问题?

请参阅将数据保留在变量名之外

如果您不知道列表有多长,您将如何命名所有变量?

我刚刚开始学习Python,即时通讯也面临着类似的情况(我有固定的条目集)。我有一个配置文件,我将为一个字符串grepping,如果某行匹配,我想读取该行。现在,每一行都有一个固定的(六个)条目集,这些条目由字符串和整数(端口号)组成,所有这些条目都由定界符分隔。为了使我的脚本更具可读性,我想为每个条目分配一个名称,以便在工作或维护人员时可以轻松识别它们。只是想知道将变量分配给每个条目是否是有效的用例或良好做法?

@ rohit-jain用于需要从元组中识别和隔离数据并将其放入变量的情况,以便元组数据可在代码中的其他位置使用。

一般来说,不建议对大量列表元素/变量使用这种编程。

但是下面的语句工作正常,并且符合预期

a,b,c = [1,2,3]

这称为"销毁"。

在某些情况下,它可以为您节省一些代码行,例如我有一个a,b,c作为整数,并希望它们的字符串值为sa,sb,sc:

sa, sb,sc = [str(e) for e in [a,b,c]]

甚至更好

sa, sb,sc = map(str, (a,b,c) )

感谢您的答复,这就是我来这里寻找的内容。在我前面没有解释器,并且想知道problem, solution ="1+1=2".split("=")是否有效,因为split()返回一个数组而不是2个值

不明白你的意思。如果"结果"语句的一部分为"无",例如a,b = None, 1,则它将被分配给相应的变量(在本例中为a)。

这样做不是一个好主意;定义变量后将如何处理?

但是,假设您有充分的理由,以下是在python中执行的方法:

for n, val in enumerate(ll):

globals()["var%d"%n] = val

print var2  # etc.

在这里,globals()是表示为字典的本地名称空间。编号从零开始,就像数组索引一样,但是您可以告诉enumerate()从1开始。

但是,再次:这实际上不太可能对您有用。

我被拒绝投票是因为我实际上回答了这个问题?来吧!

您应该回过头来重新考虑为什么"需要"动态变量。您可以通过遍历列表或将其切成块来创建相同的功能。

+1-有时,最好的答案是不回答而是说"这不好"。

也许你是对的。我想清单是一种简化。我真正要处理的是一个长度未知的数据帧,我必须将其解析为与API调用兼容的格式。这意味着我基本上是为数据帧的每个"行"创建一个字典。在那种情况下,无论如何我必须创建相同数量的不同字典,因此我认为Id只是创建变量。我一直在想

that is compatible with API calls,似乎是XY问题。您应该说明实际问题,而不是假设自己需要解决的问题

听起来您应该开始一个新问题,寻求有关如何以其他方式解决问题的建议,而不是使解决方案有效的方法。

如果项目数不变,则可以将列表转换为字符串并将其拆分为变量。

wedges = ["Panther","Ali", 0, 360]

a,b,c,d = str(wedges).split()

print a,b,c,d

这实际上可以满足我的需要-将数组转换为函数参数列表中的单个args

我已经找到了一个不错的应用程序。我有一堆csv文件,我想将它们另存为数据框:

all_files = glob.glob(path +"/*.csv")

name_list = []

for f in all_files:

name_list.append(f[9:-4])

for i,n in enumerate(name_list):

globals()[n] = pd.read_csv(all_files[i])

我假设您正在通过SQL查询获取列表-为什么您不能提交长度。这样,对我来说似乎很明显,您希望采用这些值并使用该新获取的列表中的每个值分别执行其他SQL命令。如果从SQL的角度来看,这不是一个概念,如果我是对的,我会提供语法。但是,您无需使用此解决方案创建单独的变量名,也不会失去您正在努力的多功能性。如果我很抱歉浪费您的时间

相反,请执行以下操作:

>>> var = ['xx','yy','zz']

>>> var[0]

'xx'

>>> var[1]

'yy'

>>> var[2]

'zz'

我不喜欢目的是要拥有自己的名字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值