【问题标题】:Basic Formatting Issue基本格式问题
【发布时间】:2014-05-17 12:59:02
【问题描述】:

这个脚本不起作用,有没有类似的方法来实现这个?

总结:我正在尝试打破

top_left = (1650, 1050) 

分成 2 个变量,所以我有 r = 1680 和 t = 1050

top_left = (r=1650, t=1050)

print (top_left)

print(r)
print(t)


raw_input()      

任何帮助将不胜感激,

尊敬的,
扳手

编辑,

只是为了澄清事情,因为我觉得我解释得很糟糕,我想做的是从 top_left 获取输出并将其转换为 2 个变量,我可以将其输入到另一件事中。 (假设鼠标移动(x,y))

【问题讨论】:

    标签: python variables syntax formatting


    【解决方案1】:

    如果您想要元组中元素的两个变量,请使用:

    In [6]: top_left = (1650, 1050)
    
    In [7]: r,t=top_left 
    
    In [8]: r
    Out[8]: 1650
    
    In [9]: t
    Out[9]: 1050
    
    
    top_left = (1650, 1050) # this called tuple packing
    
    r,t=top_left # is tuple unpacking
    

    如果你想要一个特定的元素,你可以使用索引:

    r=top_left[0]    
    In [8]: r
    Out[8]: 1650
    

    【讨论】:

    • 非常感谢这样一个简单但非常重要的问题要解决!嘿,这似乎是一种合乎逻辑的方法,但我似乎遇到了语法错误,你认为这是由什么引起的?
    • 不包括 In [8]: 等。这是我的 ipython shell 输出。
    • @Scorpion_God,我刚刚写了这个,你的答案和我的有什么不同?
    • 非常感谢,我成功了 Tuple 打包非常方便 :) 对于新手来说,这里是最终代码:top_left = (1650, 1050) r,t=top_left
    • 我发的时候不一样,因为你没有提到它叫做元组解包。当我发表评论时,您的评论尚未通过。
    【解决方案2】:

    它不起作用,因为top_left = (r=1650, t=1050) 无效。你的目的是什么?如果您尝试在一行中设置每个变量,您可以这样做;

    top_left,r,t = (1650, 1050), 1650, 1050
    

    【讨论】:

    • 对不起,我写错了标题,开始我想要做的是获取 top_left = (1680, 1050) 的输出,它有 2 个值并将其拆分为 2 个单独的变量(r 和t) 所以我可以单独使用它们(比如说 print (r) print (t)
    • 没问题。您可以将其设置为 'r,t = top_left' 或者您可以使用索引号达到每个值; r = top_left[0] t = top_left[1]
    【解决方案3】:
    >>> mouse_pos = (537, 285)
    >>> x, y = mouse_pos
    >>> x
    537
    >>> y
    285
    

    这个过程称为元组解包。

    【讨论】:

    • 非常感谢您的回答,它 100% 有效,并吸引了我的确切使用,我真的很高兴有人随时准备提供帮助,这确实加快了我的教育进程。谢谢
    【解决方案4】:
    top_left = ((1650, 1050))
    are_tee = ('r', 't')
    pos = dict(zip(are_tee, top_left))
    >>>pos['t']
    >>>1050
    

    一种可能的解决方法,不是您所要求的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多