myList=['57.43 N', '44.78 S', '59.64 S', '88.11 N']
我正在学习python,我有一个代表Lat/Lon
的字符串列表。我需要删除N/S
,当S
乘以-1
时,并将所有字符串转换为floats
。我以为我可以构建一个我的值的索引,并以某种方式将字符串与S与N分开,创建北方和南方列表删除N / S,
x=[x.remove('NS') for x in myList]
y=[y.remove('S') for x in myList]
将y列表乘以-1,并使用extend x by y,这样我的索引就会保持一致。任何建议都会非常可爱。 感谢。
答案 0 :(得分:2)
您可以使用列表推导来简洁地实现此目的:
newList = [-1 * float(x[:-2]) if 'S' in x else float(x[:-2]) for x in mylist]
当然,这假设了以下每个要素:
' N'
或' S'
。答案 1 :(得分:0)
您可以将每个字符串拆分为数字和方向。如果方向为S
,则将其乘以-1
:
myList=['57.43 N', '44.78 S', '59.64 S', '88.11 N']
result = []
for data in myList:
num, direction = data.split()
num = float(num)
if direction == 'S':
num *= -1
result.append(num)
print(result)
# [57.43, -44.78, -59.64, 88.11]