我有一个字符串变量 var1,它在 python 中有值 abc_123_xyz_321_123_123
总是有 6 个值用下划线“_”分隔
但这些值是动态的,这意味着根据不同的场景可能会有不同的值。
我正在尝试将每个值存储到一个不同的变量中,如下所示:
a=abc
b=123
c=xyz
d=321
e=123
f=123
我试过了:
a,b,c,d,e,f=a,b = var1.split('_');
print(a,b,c,d,e,f)
但我认为这不是正确的做法。
更新:
Traceback (most recent call last):
File "C:/Users/r/Desktop/f1.py", line 30, in threaded
a,b,c,d,e,f=a,b = var1.split('_');
ValueError: too many values to unpack (expected 2)
更新 2:
这是完整的代码段:
data = c.recv(1024)
dataa1=data.decode("utf-8")
#print(dataa1)
var1=dataa1[0]
a,b,c,d,e,f = var1.split('_');
这是错误:
a,b,c,d,e,f = var1.split('_');
ValueError: not enough values to unpack (expected 6, got 1)
答案 0 :(得分:0)
问题在于您试图将 split
的结果分配给元组 a, b
。但是,您可以执行以下操作:
var1 = "abc_123_xyz_321_123_123"
a, b, c, d, e, f = head, *tail = var1.split("_")
print(a, b, c, d, e, f)
print(head, tail)
这将字符串拆分为 6 个单独的字段,并拆分为第一个和元素以及其余元素,这似乎是您在分配给 a, b
时尝试执行的操作
答案 1 :(得分:0)
您可以先将值分配给列表,然后再将列表分配给变量,而不是将值分配给 a,b,c,d,e,f
,因为如果变量更多或拆分值更多,拆分有时不会分配。试试下面的代码。
var1 = "abc_123_xyz_321_123_123" # as split function works only on strings
list1 = var1.split("_");
a,b,c,d,e,f f = list1
希望这能解决您的问题。