Python 如何使用字符串格式指定唯一变量?
我有一个列表,我已经设法将列表转换成字符串。现在,我想通过使用字符串格式将1附加到变量的末尾,为列表中的每个项目分配一个变量Python 如何使用字符串格式指定唯一变量?,python,string,loops,formatting,Python,String,Loops,Formatting,我有一个列表,我已经设法将列表转换成字符串。现在,我想通过使用字符串格式将1附加到变量的末尾,为列表中的每个项目分配一个变量 listOne = ['33.325556', '59.8149016457', '51.1289412359'] itemsInListOne = int(len(listOne)) num = 4 varIncrement = 0 while itemsInListOne < num: for i in listOne: print
listOne = ['33.325556', '59.8149016457', '51.1289412359']
itemsInListOne = int(len(listOne))
num = 4
varIncrement = 0
while itemsInListOne < num:
for i in listOne:
print a = ('%dfinalCoords{0}') % (varIncrement+1)
print (str(listOne).strip('[]'))
break
listOne=['33.325556','59.8149016457','51.1289412359']
itemsInListOne=int(len(listOne))
num=4
变量增量=0
而itemsInListOne
我得到以下错误:SyntaxError:无效语法
如何解决此问题并以以下格式分配新变量:
a0=33.325556
a1=59.8149016457等。您当前的代码有几个问题:
listOne = ['33.325556', '59.8149016457', '51.1289412359']
itemsInListOne = int(len(listOne)) # len will always be an int
num = 4 # magic number - why 4?
varIncrement = 0
while itemsInListOne < num: # why test, given the break?
for i in listOne:
print a = ('%dfinalCoords{0}') % (varIncrement+1) # see below
print (str(listOne).strip('[]')) # prints list once for each item in list
break # why break on first iteration
这:
打印
并分配a=
(因此出现语法错误
)李>
'%d'
和'{0}'
);及varIncrement
,因此无论如何,您将始终得到'1finalCoords{0}'
listOne = ['33.325556', '59.8149016457', '51.1289412359']
a = list(map(float, listOne)) # convert to actual floats
您可以通过索引轻松访问或编辑单个值,例如
# edit one value
a[0] = 33.34
# print all values
for coord in a:
print(coord)
# double every value
for index, coord in enumerate(a):
a[index] = coord * 2
看看您的列表,您可能需要两个列表中的坐标对,这也可以通过一个简单的2元组列表来完成:
listOne = ['33.325556', '59.8149016457', '51.1289412359']
listTwo = ['2.5929778', '1.57945488999', '8.57262235411']
coord_pairs = zip(map(float, listOne), map(float, listTwo))
其中:
coord_pairs == [(33.325556, 2.5929778),
(59.8149016457, 1.57945488999),
(51.1289412359, 8.57262235411)]
这不是一个好主意。相反,把
做成一个
字典或列表,并把你的值放在这个结构中。我知道这并不理想,但我需要为每个字符串指定一个唯一的变量,因为我怀疑它。你能解释一下为什么你认为你需要访问a0
,a1
等值,而不是a[0]
,a[1]
等值吗?因为我的脚本正在从照片中提取坐标。用户选择X张照片,将坐标撕成一个列表。我不知道他们会选多少张照片,可能是30张,可能是100张。我需要一种自动为每个坐标分配一个变量的方法。这是我能想到的唯一办法。我拼命想办法。如果你知道的更多,请告诉我。谢谢你。@BrenBarn是对的,你应该把它们列在一个列表中
coord_pairs == [(33.325556, 2.5929778),
(59.8149016457, 1.57945488999),
(51.1289412359, 8.57262235411)]