【问题标题】:Python adding values of variables into list with loop for by range [closed]Python通过范围循环将变量值添加到列表中[关闭]
【发布时间】:2014-08-26 08:22:44
【问题描述】:

我有下一个代码:

a = int(raw_input())
b = int(raw_input())
c = int(raw_input())

mylist = []

for i in range(a, c):
    mylist.append(i)

print mylist

但是通过这种方式,我只得到列表中的 2 个元素。 如果我使用range(a, d),我会收到错误NameError: name 'd' is not defined

我需要使用循环将 a、b 和 c 的值添加到 mylist 中。

【问题讨论】:

  • Python 范围从 0 开始,所以 range(a,c) 不考虑 c。你应该给range(3)
  • 您希望这段代码能做什么?
  • @sloth:我相信 OP 想要使用 for 循环打印 a、b 和 c。但是由于他使用的是range(a,c),所以他的代码不会打印c
  • @ThePredator range(a, c) 当两个参数都是 int 时,将创建一个从 ac-1 的列表,所以 c 将考虑在内,就像树懒说不清楚 OP 是什么想要。
  • 你为什么尝试range(a,d)?我在您的问题中看不到任何名为 dd 的内容 - 也许这就是 python 说 NameError: name 'd' is not defined 的原因

标签: python list python-2.7


【解决方案1】:

我想你可能想要这个:

a = int(raw_input())
b = int(raw_input())
c = int(raw_input())

mylist = []

for i in [a, b, c]:
    mylist.append(i)

print mylist

【讨论】:

  • 我不明白你是如何得出这就是 OP 想要的结论的。
  • @KobiK 我认为这很清楚,这就是 OP 的想法,否则他可能不会尝试range(a, d)。 +1
  • @tobias_k 您也可以说他想要a -> d 的整个范围,而不仅仅是上面答案中的a,b,c,。我感谢您尝试提供帮助的努力,但是对于恕我直言,我认为最好先从 OP 那里得到一个明确的问题,然后提供答案:)。
  • @KobiK 是的,OP 已经得到了-3。这个问题确实不清楚。我认为等待OP的回应是最好的选择。我的回答是,我认为最适合这个问题。
  • mylist = [a, b, c] 会更快。
【解决方案2】:

为什么要这么做?

for i in range(a, c):
    mylist.append(i)

改为:

mylist = range(a, c)

【讨论】:

    【解决方案3】:

    现在你们的cmets已经澄清了这个问题。

    要在字符和数字之间切换,请使用 ordchr。注意你给变量取的名字和它取的值之间的区别。

    例如

    def letters(start, end):
      begin = ord(start)
      end = ord(end)
      for item in range(begin, end):
        yield chr(item)
    
    
    >>> for item in letters('a', 'd'):
    ...   print item
    ...
    a
    b
    c
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多