仅列出一些字符串

时间:2019-05-13 03:54:51

标签: python-3.7

好的,所以我有一串数据

data= "DTG: 20191005/0925Z VAAC: LONDON VOLCANO: ASKJA"

所以我想把它做成字典 {DTG:'20191005/0925Z',VAAC:'LONDON',VOLCANO:'ASKJA'}

我使用了split函数将它们拆分并列出了列表,但我似乎无法做到

print(data.split(":"))

我必须将其列为以下列表: {DTG:'20191005/0925Z',VAAC:'LONDON',VOLCANO:'ASKJA'}

有人可以帮忙吗?

好的,如果您能执行上述操作,那么文件中的数据如何 https://www.sendspace.com/file/zg0kmh

4 个答案:

答案 0 :(得分:1)

首先,{DTG:'20191005/0925Z',VAAC:'LONDON',VOLCANO:'ASKJA'} 被称为字典而不是列表。

现在要创建该字典,您就想在空白而不是:上拆分字符串,然后可以zip一起替换元素以构成键和值,然后将该邮政编码转换为字典

请注意,以下解决方案假定每个单词都是键或值。如果您有一个值或一个类似hello world的键,则此逻辑将不起作用,那么也许另一个用于拆分字符串的逻辑(另一个字符代替空格,或正则表达式拆分)会更有益

data= "DTG: 20191005/0925Z VAAC: LONDON VOLCANO: ASKJA"

#Split string on whitespace
arr = data.split()

#Zip alternate elements together
arr_zip = zip(arr[::2], arr[1::2])

#Convert dict to zip and print it
dct = dict(arr_zip)
print(dct)

输出将为{'DTG:': '20191005/0925Z', 'VAAC:': 'LONDON', 'VOLCANO:': 'ASKJA'}

答案 1 :(得分:0)

假设您的数据正是这种格式,则可以使用以下代码:

data = "DTG: 20191005/0925Z VAAC: LONDON VOLCANO: ASKJA"
parts = data.split()
output = {
  'DTG': parts[1],
  'VAAC': parts[3],
  'VOLCANO': parts[5],
  }

但是,如果您的数据中有空格(例如“ NEW YORK”),这不会很好地考虑空格。

答案 2 :(得分:0)

使用s=df.pivot(*df.columns) l=list(itertools.permutations(list(range(s.shape[1])))) l1=list(itertools.permutations(list(range(len(s))),3)) list_of_df=[pd.DataFrame({'A':s.index[list(y)], 'C':s.columns.values[list(x)], 'distance':s.iloc[list(y),:].values[np.arange(len(y)),x]}) for x in l for y in l1 ]

dict.update

输出:

data = "DTG: 20191005/0925Z VAAC: LONDON VOLCANO: ASKJA"
d = dict()
d.update(s.split(':') for s in data.replace(': ', ':').split())

答案 3 :(得分:0)

data= "DTG: 20191005/0925Z VAAC: LONDON VOLCANO: ASKJA"

data = data.split()
dic = {}
for d in data:
    if ":" in d:
        key = d.replace(":","")
    else:
        dic[key] = d

print(dic)

输出:

{'DTG': '20191005/0925Z', 'VAAC': 'LONDON', 'VOLCANO': 'ASKJA'}