【问题标题】:How to save input in dictionary (but separate the words when there's a space)?如何将输入保存在字典中(但在有空格时将单词分开)?
【发布时间】:2022-08-03 20:34:59
【问题描述】:

dict = {}
name_surname = input(\"Enter your name and surname: \").split(\" \")
dict[\"Name and surname\"] = name_surname
print(dict)

我需要这样做,以便当用户输入他们的姓名和姓氏(例如:Michael Jokester Scott)时,它将名称和用户名分开,以便我以后可以使用它们中的每一个。

这样做的目的是能够对某人的姓名和姓氏进行随机组合,并在末尾附加一个 \"@gmail.com\"。通过这种方式,您将获得“随机”的个人电子邮件地址。 所以最后,我应该能够发送一封随机电子邮件,例如:\"jokester.scott.michael@gmail.com.\"

到目前为止我所拥有的非常糟糕,我是 Python 新手,我不太了解 dict,列表对我来说更容易,但我也需要学习这一点。

  • 您希望字典结构是什么样的?如所写,与键 \'Name and surname\' 关联的值将是一个字符串列表,可能正是您想要的
  • 一方面,将变量命名为dict 是一种不好的做法,因为这会影响内置的dict(),并可能导致不良后果。除此之外,您当前的输出有什么问题?当我运行它时,它似乎与您描述的完全一样
  • @G.Anderson 感谢您的提示。我现在需要程序来随机化分隔的单词。我不知道该怎么做,这就是我需要帮助的地方。
  • 从问题中不清楚,感谢您的澄清。见this question and related answers。 TL;DR:Python 有一个内置的随机模块,其中包含 random.shuffle 方法

标签: python dictionary random input


【解决方案1】:

如果我正确理解了这个问题,您可以在字典中使用列表。

sample_dct['Name and Surname'] = []
# take input from user
name_surname_list = taken_data_from_user.split()
sample_dct['Name and Surname'].append(name_surname_list)
# get sample_dct values, iterate on these with a loop
# generate 2 random number range between (0,len(sample_dct)) use generated these random numbers to take random value. 
# for surname, use [-1] index and store random_surname; for name, use [:-1] and store random_name.
random_name_full = '.'.join(random_name)
random_mail = '.'.join(random_name_full ,random_surname) + '@gmail.com'

【讨论】:

  • 感谢您的回复,但我需要它是一个字典而不是一个列表。有没有办法只用 dict 来实现我所需要的?我也尝试了你的贡献,但它没有用,有一个错误,我想改变什么吗?
  • 如您所知,字典对象使用 { key : value } 对。因此,据我所知,不可能仅使用 dict 对您想要的结构进行编码。也许您可以像这样创建结构:python sample_dct['name and surname'] = {1:{'name':name_surname[:-1],'surname':name_surname[-1],2:{{'name':name_surname[:-1],'surname':name_surname[-1]...}
【解决方案2】:

这是你想要的? while 循环有点矫枉过正,但你永远不知道你会得到什么名字。

dict_data = {}
name_surname = input("Enter your name and surname: ").split(" ")
arr_size = len(name_surname)


def name(data):
    count = 1
    if arr_size == len(data):
        dict_data['name'] = data[0]
        data.pop(0)
        dict_data['last_name'] = data[-1]
        data.pop(-1)
    while arr_size > len(data) != 0:
        name = 'middle_name_' + str(count)
        dict_data[name] = data[0]
        data.pop(0)
        count += 1


name(name_surname)
print(dict_data)

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多