I have the following data, however I want to create a dictionary using a foor loop.
data = [("TEXT 1", 'no'), ("TEXT 2", 'yes'), ("TEXT 3", 'no'), ("TEXT 4", 'no'), ("TEXT 5", 'yes')]
Is it possible to do that?
I need a dictionary with this structure:
[({"TEXT 1": 'no'}, "Comment 1"),
({"TEXT 2": 'yes'}, "Comment 2")]
Comment 1, Comment 2 and so on are arbitrary labels that I am assigning and are not mentioned in my dataset.
Advertisement
Answer
A simple way to write this down:
data = [
("TEXT 1", 'no'), ("TEXT 2", 'yes'), ("TEXT 3", 'no'),
("TEXT 4", 'no'), ("TEXT 5", 'yes')
]
# Expected Output:
# [({"TEXT 1": 'no'}, "Comment 1"),
# ({"TEXT 2": 'yes'}, "Comment 2")]
def newdata(data_arg):
print([
({tup[0]: tup[1]}, f'Comment {tup[0].split()[1]}') for tup in data_arg
])
newdata(data)
This will get the expected output for all tuples in the dictionary, “print” can be switched to return if needed.
Another approach:
def func(oldstring):
ANS = []
cmt = 0
for i in oldstring:
new_dic = {}
cmt += 1
new_dic[i[0]] = i[1]
ANS.append((new_dic, 'comment' + str(cmt)))
return ANS
print(func(data))
These may solve the issue.