社区首页 >问答首页 >使用for循环引用列表中的每一项(而不仅仅是最后一项)

使用for循环引用列表中的每一项(而不仅仅是最后一项)
EN

Stack Overflow用户
提问于 2015-11-19 16:10:02
回答 4查看 267关注 0票数 1

我不知道如何引用列表中的每一项,而不是在使用for循环时只引用最后一项。下面是一个简单的程序,我想要在一行中打印一个n-*,其中n是stars列表中的每个数字。

代码语言:javascript
代码运行次数:0
复制
#!/usr/bin/python

def histogram():
    stars = [10,2,3]

    for i in stars:
        char = "*" * i

    return char

print histogram()

此代码的输出仅为*** (stars中的最后一个数字)。我怎样才能让它打印出每个数字的星号?请尽可能使用最简单的语法和解释。

EN

回答 4

Stack Overflow用户

发布于 2015-11-19 16:16:52

实际上,您的函数只返回分配给'char‘的最后一个值--这个值将是由星号组成的单个字符串。您想要做的是,创建一个“char”在每次循环迭代时获取的连续值的列表:

代码语言:javascript
代码运行次数:0
复制
def histogram():
    stars = [10,2,3]
    characters = []

    for i in stars  :
        cur_stars = "*" * i 
        characters.append( cur_stars )
        print cur_stars

    return characters

>>> stars = histogram()
**********
**
***

上面的代码将逐行打印出星号,并将列表存储为变量' stars‘。

做同样事情的一种更快、更干净的方法是列表理解(一种functional programming结构),它可以动态创建列表:

代码语言:javascript
代码运行次数:0
复制
def histogram():
    stars = [10,2,3]
    return [ "*" * i  for i in stars ]

>>> histogram()
['**********', '**', '***']

>>> print('\n'.join( histogram() ))
**********
**
***
票数 4
EN

Stack Overflow用户

发布于 2015-11-19 16:16:54

问题是,对于stars中的每一项,您都需要重新分配char。因此,在histogram()返回时,char等于"*" * stars[-1] (列表中的最后一项)。纠正这个问题的最简单方法是只为stars中的每个元素打印char,而不返回任何内容。

代码语言:javascript
代码运行次数:0
复制
def histogram():
    stars = [10,2,3]
    for i in stars:
        char = "*" * i
        print char

histogram()

**********

**

***

如果您希望返回直方图的输出,则可以添加到char,而不是将其赋给新值。'\n'将在stars中的每一项之间添加一个新行(如果没有它,所有的星号将在输出中的一行上)。

代码语言:javascript
代码运行次数:0
复制
def histogram():
    stars = [10,2,3]
    char = ''
    for i in stars:
        char += "*" * i + '\n'
    return char

print histogram()

一种更简洁的方式来写上面的代码:

代码语言:javascript
代码运行次数:0
复制
def histogram():
    stars = [10,2,3]
    return '\n'.join('*' * i for i in stars)

print histogram()
票数 2
EN

Stack Overflow用户

发布于 2015-11-19 16:20:15

考虑一下:

代码语言:javascript
代码运行次数:0
复制
def histogram(li):
    rtr=[]
    for n in li:
        rtr.append('*'*n)

    return rtr

然后,您可以执行以下操作:

代码语言:javascript
代码运行次数:0
复制
stars=[10,2,3]
for t in zip(stars, histogram(stars)):
    print('{:4d} {}'.format(*t))

打印:

代码语言:javascript
代码运行次数:0
复制
  10 **********
   2 **
   3 ***
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33808916

复制
相关文章
使用VBA遍历数据验证列表中的每一项
想要遍历数据验证列表中的每一项,如何编写VBA代码呢?如果数据验证列表中的项值来源于单元格区域或者命名区域,则很简单,遍历该区域即可。然而,有些数据验证列表是直接使用逗号分隔的项添加的,这就需要使用不同的方法。
fanjy
2023/08/29
4890
使用VBA遍历数据验证列表中的每一项
在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性
在编写项目文件或者 MSBuild Target 文件的时候,我们经常会使用 <Foo Include="Identity" /> 来定义集合中的一项。在定义的同时,我们也会额外指定一些属性。
walterlv
2023/10/22
2660
在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性
【Python】列表 List ⑦ ( 列表遍历 | 使用 while 循环遍历列表 | 使用 for 循环遍历列表 | while 循环 与 for 循环对比 )
将 列表 容器 中的数据元素 , 依次逐个取出进行处理的操作 , 称为 列表的遍历 ;
韩曙亮
2023/10/11
8920
python循环引用中的原理
1.检查sys.modules中是否有这个模块 2.如果没有,将sys.modules[module] = empty_pyc 3.执行module.py的所有代码,生成对应的pyc 4.sys.modules[module] = real_pyc
超级大猪
2019/11/21
1.5K0
列表循环放引用并写出打印结果
flist = [] # 创建了一个空列表 for i in range(3): # 循环三次 def foo(x): # 定义三次函数 print (x + i)
汪凡
2019/03/01
8420
列表循环放引用并写出打印结果
(持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset)
发布于 2018-02-07 13:55 更新于 2018-03-23 13:56
walterlv
2018/09/18
1.9K0
[CSS]第一项和最后一项样式
列表项的第一项距离顶部0.2rem,最后一项距离底部0.5rem .item:first-child { padding-top: .2rem; } .item:last-child { padding-bottom: .5rem; }
悟空聊架构
2018/06/26
4220
使用VBA自动选择列表框中的第一项
有时候,可能你想自动选择列表框中的第一项或者最后一项。例如,当选择列表框所在的工作表时,列表框自动选择第一项,或者选择最后一项。这都可以使用简单的VBA代码轻易实现。
fanjy
2022/11/16
2.4K0
使用VBA自动选择列表框中的第一项
小记 TypeScript 中的循环引用问题
平时编写 TypeScript 代码时,一般都倾向于使用模块(Module),通过结合使用 import 和 export 我们便可以方便的进行模块的导入和导出.
用户2615200
2020/10/15
5.8K0
使用 Python 创建使用 for 循环的元组列表
Python 的关键数据结构是列表和元组。元组元素一旦设置,就无法更改。这称为不可变性。但是列表元素可以在初始化后修改。在处理需要组合在一起的数据时,for 循环用于创建元组列表。列表比元组更具适应性,因为它们能够被修改。本教程演示如何使用 for 循环创建元组列表,从而简化重复性任务。
很酷的站长
2023/08/11
3810
使用 Python 创建使用 for 循环的元组列表
浅析 SpringMVC 中返回对象的循环引用问题
「技术分享」某种程度上,是让作者和读者,不那么孤独的东西。欢迎关注我的微信公众号:「Kirito的技术分享」
kirito-moe
2021/07/16
6K0
卡中国脖子的20项技术产品,每一项都关乎中国制造的崛起
中国制造业目前已取得了举世瞩目的成就,从落后挨打,到现在巨龙腾飞,中国制造人付出了巨大心血和努力。然而不可否认的是,中国目前许多产品仍然高度依赖进口,中国制造在这些领域的研发和生产依然存在难以攻破的技术难关。
钱塘数据
2022/03/15
1.7K0
卡中国脖子的20项技术产品,每一项都关乎中国制造的崛起
iOS循环引用
iOS循环引用 当前类的闭包/Block属性,用到了当前类,就会造成循环引用 此闭包/Block应该是当前类的属性,我们经常对Block进行copy,copy到堆中,以便后用。 单方向引用是不会产生循环引用。需要self引用闭包/Block,Block中使用self。 有两个规则: 如果你是通过引用来访问一个实例变量,那么将强引用至self。 如果你是通过值来访问一个实例变量,那么将直接强引用至这个“值”变量。 Object-C Block循环引用情况 一般来说我们总会在设置Block之后,在合适的时间
用户1941540
2018/05/11
7960
实际开发中-Block导致循环引用的问题
说到循环引用问题,最最最常遇到的,不是在项目中,而是在面试中。如果面试官问你开发中是否遇到过retain cycle,你如果说没遇到过,估计已经很难跟面试官继续友好的沟通下去了。 但是这个问题怎么回答呢,网络上千篇一律的答案-->使用Block的时候遇到过,使用__weakSelf 代替 self 等等,可以说这个答案没啥错,但是所有人都回答的一样,并不能突出我们的逼格,无法让面试官知道我们在这方面有过研究,有闪光点。 对于开发者来说,喜欢探索,喜欢挖掘不懂的知识,在面试官眼里会加分不少。探索是基于问题之
小蠢驴打代码
2018/05/24
1.2K0
PHP 循环引用的问题
问题 为了引出问题, 先来看下面一段代码: <?php $arr = [ 'a', 'b', 'c', 'd', ]; foreach ($arr as &$each){ e
烟草的香味
2019/07/25
3.7K0
PHP 循环引用的问题
列表元素循环移位中Python切片的妙用
之前有个文章中介绍了列表循环移位的3中方法,原文请见:Python序列循环移位的3种方法 其中第二种方法虽然更直接地翻译了题目的要求,但是显得还是有点啰嗦,如果充分利用Python中的切片技术,可以写成下面更简洁的形式: >>> def demo(lst, k): x = lst[k-1::-1] y = lst[:k-1:-1] return list(reversed(x+y)) #测试用的列表 >>> lst = list(range(20)) #循环左移3位 >>> demo(l
Python小屋屋主
2018/04/16
5.6K0
解决Python中的循环引用和内存泄漏问题
在Python编程中,循环引用和内存泄漏是两个常见的问题。本文将详细介绍如何识别和解决这些问题,并提供详细的代码示例。
华科云商小徐
2023/08/29
1.1K0
循环中使用goroutine引用临时变量
// ParallelWrite writes data to file1 and file2, returns the errors.
用户7365393
2021/10/06
7870
fastjson 重复引用和循环引用问题
数据传输使用json格式再方便不过了。 fastjson 由阿里巴巴那伙人使用Java语言编写,号称最快的JSON库 前两天遇到一个问题 后台的数据转化为json字符串后发送到前台出现了$ref字样的东西,后来明白了这是引用,在传输的数据中出现相同的对象时,fastjson默认开启引用检测将相同的对象写成引用的形式. 说到引用分为两种,重复引用和循环引用
Mshu
2018/10/31
2.6K0
中国严重依赖进口的20项技术产品,每一项都关乎中国制造的崛起
中国制造业目前已取得了举世瞩目的成就,从落后挨打,到现在巨龙腾飞,中国制造人付出了巨大心血和努力。然而不可否认的是,中国目前许多产品仍然高度依赖进口,中国制造在这些领域的研发和生产依然存在难以攻破的技术难关。
钱塘数据
2022/01/29
3.9K0
中国严重依赖进口的20项技术产品,每一项都关乎中国制造的崛起

相似问题

如何回显PHP数组中的每一项,而不仅仅是最后一项?

50

将地图映射到列表中的每一项,而不仅仅是列表

20

如何让TransitionEnd处理集合中的每一项,而不仅仅是对最后一项触发?

110

如何使用for循环为列表中的每一项创建按钮?

112

在每一项之后插入逗号,而不是最后一项。

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文