免责声明:我绝对是Python编程的初学者,请耐心等待。我正在为此上课,非常渴望获得帮助。
我正在创建一个程序,可以从任何包含以下信息的文本文件中读取数据: 生产,是水果(是/否)
islice
我需要将字符串转换为如下所示的列表:
String: "Apple","Y""Banana","Y""Pumpkin","N""Orange","Y""Eggplant","N"...
在那之后,我必须拆分/分离值,以便它们可以适合如下所示的字典:
"Apple","Y"
"Banana","Y"
"Pumpkin","N"
...
对于此任务,我被告知我需要使用 for 循环分割行并创建一个列表的字典。但是,我不知道如何以及在哪里放置它。
请注意,该程序必须能够从任何文件读取数据。用户还必须能够修改列出的水果/蔬菜是否确实是水果。
非常感谢您!
答案 0 :(得分:1)
所以我在这里收到了很多评论, 这是建议的解决方案,它将起作用
x = "Apple","Y""Banana","Y""Pumpkin","N""Orange","Y""Eggplant","N"
length = len(x)
mainList = []
def split_str(s):
return [ch for ch in s]
for i in range(length):
dict = {}
if (i == 0):
dict["produce"] = x[i]
if(split_str(x[i+1])[0] == 'Y'):
dict["fruit"] = 'Yes'
else:
dict["fruit"] = 'No'
mainList.append(dict)
else:
if(i < 5):
dict["produce"] = x[i][1:]
if(split_str(x[i+1])[0] == 'Y'):
dict["fruit"] = 'Yes'
else:
dict["fruit"] = 'No'
mainList.append(dict)
print(mainList)
在线小提琴链接: https://pyfiddle.io/fiddle/b3de895b-8542-419d-841a-ad7ddf008d9a/?i=true
答案 1 :(得分:0)
我希望这就是你想要的...
string="apple","Y","banana","Y","pumpkin","N"
dict={}
for i in range(0,len(string),2):
dict[string[i]]=string[i+1]
for k,v in dict.items():
print(k,v)
答案 2 :(得分:0)
非常感谢那些回答我的问题的人。我可以使用以下代码正常运行此程序:
# Read the contents from the file first.
def get_content(filename):
f = open(filename,"r")
if f.mode == 'r':
content = f.read()
content = content.replace('"','')
return content
# Convert the contents to list of dictionaries (Y/N being a boolean).
def convert_to_list(content):
string = sorted(content.split('\n'),key=str.lower)
produce_list = []
for x in string:
a = x.split(',')
b: bool = bool('Y' in a[1])
d = dict({'produce': a[0], 'fruit':b})
restaurant_list.append(d)
return restaurant_list
我能够在站点外的帮助下完成此任务。非常感谢大家的投入!