首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将输入转换为变量

将输入转换为变量
EN

Stack Overflow用户
提问于 2022-09-03 10:58:33
回答 1查看 62关注 0票数 2

我有个密码:

代码语言:javascript
复制
rock = [['rock', 'lightning'], ['rock', 'gun'], ['rock', 'air'], ['rock', 'water'], ['rock', 'dragon'], ['rock', 'paper'], ['rock', 'devil']]
gun = [['gun', 'lightning'], ['gun', 'sponge'], ['gun', 'air'], ['gun', 'water'], ['gun', 'dragon'], ['gun', 'paper'], ['gun', 'devil']]
lightning = [['lightning', 'wolf'], ['lightning', 'sponge'], ['lightning', 'air'], ['lightning', 'water'], ['lightning', 'dragon'], ['lightning', 'paper'], ['lightning', 'devil']]
devil = [['devil', 'wolf'], ['devil', 'sponge'], ['devil', 'air'], ['devil', 'water'], ['devil', 'dragon'], ['devil', 'paper'], ['devil', 'tree']]
dragon = [['dragon', 'wolf'], ['dragon', 'sponge'], ['dragon', 'air'], ['dragon', 'water'], ['dragon', 'human'], ['dragon', 'paper'], ['dragon', 'tree']]
water = [['water', 'wolf'], ['water', 'sponge'], ['water', 'air'], ['water', 'snake'], ['water', 'human'], ['water', 'paper'], ['water', 'tree']]
air = [['air', 'wolf'], ['air', 'sponge'], ['air', 'scissors'], ['air', 'snake'], ['air', 'human'], ['air', 'paper'], ['air', 'tree']]
paper = [['paper', 'wolf'], ['paper', 'sponge'], ['paper', 'scissors'], ['paper', 'snake'], ['paper', 'human'], ['paper', 'fire'], ['paper', 'tree']]
sponge = [['sponge', 'wolf'], ['sponge', 'rock'], ['sponge', 'scissors'], ['sponge', 'snake'], ['sponge', 'human'], ['sponge', 'fire'], ['sponge', 'tree']]
wolf = [['wolf', 'gun'], ['wolf', 'rock'], ['wolf', 'scissors'], ['wolf', 'snake'], ['wolf', 'human'], ['wolf', 'fire'], ['wolf', 'tree']]
tree = [['tree', 'gun'], ['tree', 'rock'], ['tree', 'scissors'], ['tree', 'snake'], ['tree', 'human'], ['tree', 'fire'], ['tree', 'lightning']]
human = [['human', 'gun'], ['human', 'rock'], ['human', 'scissors'], ['human', 'snake'], ['human', 'devil'], ['human', 'fire'], ['human', 'lightning']]
snake = [['snake', 'gun'], ['snake', 'rock'], ['snake', 'scissors'], ['snake', 'dragon'], ['snake', 'devil'], ['snake', 'fire'], ['snake', 'lightning']]
scissors = [['scissors', 'gun'], ['scissors', 'rock'], ['scissors', 'water'], ['scissors', 'dragon'], ['scissors', 'devil'], ['scissors', 'fire'], ['scissors', 'lightning']]
fire = [['fire', 'lightning'], ['fire', 'gun'], ['fire', 'air'], ['fire', 'water'], ['fire', 'dragon'], ['fire', 'rock'], ['fire', 'devil']]

user_choice = input().split(",")

print(*[user_choice[0]], *[user_choice[1]], sep=", ")

我正试着根据用户的输入得到一个大列表。因此,如果用户输入"rock,gun",列表应该如下所示:

代码语言:javascript
复制
[['rock', 'lightning'], ['rock', 'gun'], ['rock', 'air'], ['rock', 'water'], ['rock', 'dragon'], ['rock', 'paper'], ['rock', 'devil'], ['gun', 'lightning'], ['gun', 'sponge'], ['gun', 'air'], ['gun', 'water'], ['gun', 'dragon'], ['gun', 'paper'], ['gun', 'devil']]

用户可以输入任意数量的值。我怎么做这个?

EN

回答 1

Stack Overflow用户

发布于 2022-09-03 11:06:06

你可以用字典代替,然后这样做:

代码语言:javascript
复制
d = {
    'scissors': [['scissors', 'gun'], ['scissors', 'rock'], ['scissors', 'water'], ['scissors', 'lightning']],
    'fire': [['fire', 'lightning'], ['fire', 'gun'], ['fire', 'air'], ['fire', 'water']]
}

user_choice = input().split(",")
print(d[user_choice[0]]+d[user_choice[1]])

编辑

如果有更多的输入值,合并所有子列表的一种有效方法是使用itertools模块,如下所示:

代码语言:javascript
复制
import itertools

# define dictionary etc...

user_choice = input().split(",")
l = itertools.chain([d[choice] for choice in user_choice])
print(list(l))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73591688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档