如何从表示为 ["Smth"、"Smth"、"Smth"] 的字符串中获取列表

How to get list out of string represented as ["Smth", "Smth", "Smth"]

我有一个 pandas 系列对象,其中包含与房屋相关的特征。这些功能像这样放在方括号中:['Laundry In Unit'、'No Fee'、'Elevator'] 但我需要将这些功能作为字符串列表,所以我想知道是否可能。

实际上,我想创建一个包含“特征评分”的新列,因此我为不同的特征添加了分数。我试图像这样实现它(文本下方的代码),但这个“功能”列似乎没有列表,而是看起来像列表的字符串。

features_dict = {
    'Laundry In Unit,':5 ,
    'No Fee,':5,
    'Elevator,': 3,
    'Dogs Allowed,':3,
    'Cats Allowed,': 3,
    'Swimming Pool,': 8,
    'Doorman,':9,
    'Fitness Center,': 8,
    'Dishwasher,': 5,
    'Hardwood Floors,': 4,
    'Pre-War,': 3,
    'Common Outdoor Space,': 4,
    'Private Outdoor Space,':8
}
features_list = clean_data['features'].tolist()
features_score = [0] * len(features_list)
for i in range(len(features_list)):
  for key, num in features_dict.items():
    for word in features_list[i].split(" "):
      if key == word:
        features_score[i]+=num 

也许features_dict.keys()你会有一个密钥列表

祝你有愉快的一天

如果您有一个 repr 像这样的字符串:

'["Smth", "Smth", "Smth"]'

并且您想要一个如下所示的列表:

["Smth", "Smth", "Smth"]

那么你需要ast.literal_eval:

import ast

the_string = '["Smth", "Smth", "Smth"]'

the_list = ast.literal_eval(the_string)
print(the_list)

输出:

['Smth', 'Smth', 'Smth']