在我身后有一个python课程,我在下一堂课中遇到了这个问题,而且我似乎对如何开始这个问题感到很沮丧。
“编写一个要求用户输入字符串的python程序,然后创建以下字典:值是字符串中的字母,相应的键是字符串中的位置。例如,如果用户输入字符串“ABC123”然后字典将是:D = {'A':0,'B':1,'C':2,'1':3,'2':4,'3':5}
我开始要求用户输入简单的内容,如
s = input('Enter string: ')
然而,我不知道如何进行下一步。任何帮助将不胜感激。
答案 0 :(得分:1)
In [55]: s = input("Enter a string: ")
Enter a string: ABC123
In [56]: d = {char:i for i,char in enumerate(s)}
In [57]: d
Out[57]: {'C': 2, '1': 3, '2': 4, '3': 5, 'B': 1, 'A': 0}
但请注意,如果用户输入中有重复的字符,d
将包含每个字符最后一次出现的索引:
In [62]: s = input("Enter a string: ")
Enter a string: ABC123A
In [63]: d = {char:i for i,char in enumerate(s)}
In [64]: d
Out[64]: {'C': 2, '1': 3, '2': 4, '3': 5, 'B': 1, 'A': 6}
答案 1 :(得分:0)
此?
def dict():
user_input = input("Please enter a string")
dictionary = {}
for i, j in enumerate(user_input):
dictionary[j] = i
print(dictionary)
dict("ABC123")
答案 2 :(得分:0)
你确定需要这个输出:D = {'A':0,'B':1,'C':2,'1':3,'2':4,'3':5}而不是D = {0:'A',1:'B',2:'C'......}?你可以翻转键:值,但它们将是无序的(例如你会得到类似的东西:D = {'B':1,'3':5,'A':0,'C':2,' 1':3,'2':4}或任何其他随机组合。)
听起来你开始学习python了。欢迎使用精美的编程语言。人们在这里非常有帮助,但你需要表现出一些努力和主动性。这不是一个获得快速解决方案的地方。人们可能会把它们提供给你,但你永远不会学习。
我认为这是与HW相关的问题?除非我弄错了(有人请随意纠正我),你正在寻找的输出很难,如果不是不可能的话(例如按照你想要的特定顺序)。我鼓励你阅读python dictionaries。
尝试并运行:
#user = input("Give me a string:")
#Just for demo purpose, lets
#stick with your orig example
user = "ABC123"
ls =[] #create empty list
d = {} #create empty dictionary
#Try to figure out and understand
#what the below code does
#what is a list, tuple, dict?
#what are key:values?
for l in enumerate(user):
ls.append(l)
for k,v in ls:
d[k] = v
print('first code output')
print(ls)
print(d)
#What/how does enumerate work?
#the below will generate a
#ordered dict by key
for k,v in enumerate(user):
d[k] = v
print('2nd code output')
print(d)
#you want to flip your key:value
#output, bases on origibal question
#notice what happens
#run this a few times
print('3rd code output')
print(dict(zip(d.values(), d.keys())))
#You can get the order you want,
#but as a list[(tuple)], not as
#a dict at least in the output
#from your orig question
print(list(zip(d.values(), d.keys())))
除非我错了,而且有经验的人可以插话,你不能以你想要的字典格式获得“有序”输出。
我在移动设备上,所以任何人都可以随意纠正。