我得到了一个包含4个变量的元组列表,这些元组将被打印在一行中,我希望用户指定这些打印格式。用户自定义格式的输入.format()
这是我到目前为止的代码:
mylist = [
("Monday", "13", "November", "2017"),
("Tuesday", "14", "November", "2017"),
("Wednesday", "15", "November", "2017")]
# Note: The real list have a thousand of items, not just 3.
custom_format = self.GUI_field_where_user_types.get_text()
for item in mylist:
weekday = item[0]
daynumber = item[1]
month = item[2]
year = item[3]
print(eval(custom_format))
# Example custom_format: '"{0}, {1} of {2} from year {3}".format(weekday, daynumber, month, year)'
做检查,我只是想与上面的输入,它显然作品,但我不想使用eval,因为它显然太危险了。所以我的问题是:如何让用户以一种安全的方式定义格式?
注:用户应该能够在.format()方法"{0}, {1} of {2} from year {3}"
之前只能编辑字符串,阻止访问任何蟒蛇命令,但让他只能使用变量,他想要的,并不总是4其中。一些实例中可能是:
- {0},{1}的{2}
- {3},{1}在一个月{2}
- {0},{1}的{2 }从今年{3}
- {1}任何{2} - {3}
对不起,我有点困惑。你输入的是什么?这:来自年份{3}“'{2}的{”{0},{1}? –