列表和while循环

分解问题
首先需要知道输入是什么,并且希望获得什么样的输出(结果)。

输入是:

包含 20 个随机生成的整数的列表
输出是:

一个整数列表,每个数字(称其为“n”)表示整数出现在随机生成的整数列表中 n 次。

例如,如果数字 4 出现在随机生成的列表里 5 次,那么我们需要创建另一个列表,该列表索引 4 的位置是数字 5。如果数字 6 出现在随机生成的列表里 2 次,那么输出列表的索引 6 处将为数字 2。到目前为止的输出列表为:[0,0,0,0,5,0,2,0,0,0,0]

要执行的操作
概述下用笔和纸手动解答的步骤:

循环访问随机生成列表中的每个元素
获取列表中的当前数字
现在需要将此数字的计数器加一
通过查看输出列表获取此数字的当前计数,然后将该计数器加一
到达循环结束位置了吗?
如果没有,重新执行步骤 1-5(当我们依然在循环访问列表的时候)
转换为代码
看看这些步骤,然后转换为计算机代码。

1. 循环访问列表中的每个元素
似乎首先需要设置循环结构,循环访问列表中的每个元素。为此,我们应该设置一些变量,以便存储列表的当前索引并创建初始 count_list:

count_list = [0]*11
index = 0
现在可以设置循环结构了:

while index < len(random_list):
  # Put other code here
  index = index + 1
请注意,我们已经将 index = index + 1 添加到循环中了。此代码可以保证计算机不会进入无限循环中。对于多数循环而言,我们始终需要明确定义结束点。在此示例中,结束点是数字 index 大于列表长度时

2. 获取列表中的当前数字
通过访问列表的当前索引获取该数字:

number = random_list[index]
3-4. 现在需要将此数字的计数器加一。
因为 count_list 的索引是查询依据,我们可以按照以下方法增加当前数字的计数:

count_list[number] = count_list[number] + 1
5: 到达循环的结尾了吗?如果没有,再次执行 while 循环部分。
我们的循环结构已经考虑到这一条件,因为在循环的顶部,我们始终检查索引编号是否依然小于随机列表的长度:index < len(random_list)

我们采用的逻辑:如果索引编号小于列表的长度,则可以有信心地判断,每当我们使用 index 访问列表时,始终不会产生错误,并且将能够使用数字 index 访问列表中的元素。

答案代码
count_list = [0]*11
count = 0

while index < len(random_list):
  number = random_list[index]
  count_list[number] = count_list[number] + 1
  index = index + 1
完整的答案代码
import random

random_list = []
list_length = 20

while len(random_list) < list_length:
  random_list.append(random.randint(0,10))

count_list = [0] * 11
index = 0
count = 0

while index < len(random_list):
  number = random_list[index]
  count_list[number] = count_list[number] + 1
  index = index + 1
方法二: 简单for
import random

random_list = []
list_len = 10
while len(random_list)<list_len:
    random_list.append(random.randint(0,10))
print random_list

count_list = [0]*11
for ele in random_list:
    count_list[ele]+=1
print count_list


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
for循环和while循环是两种常用的循环结构。for循环适用于在一个有序集合中依次取出元素进行操作,如列表、元组和字符串等。它的语法格式为:for(循环变量初始化;循环条件;循环变量迭代){循环体}。循环变量初始化在进入循环之前进行初始化,循环条件用于判断是否继续执行循环,循环变量迭代用于控制循环变量的变化,循环体是需要重复执行的代码块。在for循环中,循环操作通常只有一条语句,可以省略大括号,但建议不要省略。 而while循环的四要素与for循环相同,只是位置不同。它的语法格式为:while(循环条件){循环体;循环变量迭代}。while循环适用于在满足循环条件的情况下重复执行循环体,直到循环条件不满足为止。需要注意的是,循环体中的循环操作需要手动控制循环变量的变化,以避免死循环的发生。 综上所述,for循环和while循环都是常用的循环结构,for循环适用于在有序集合中依次取出元素进行操作,而while循环适用于在满足循环条件的情况下重复执行循环体。您可以根据具体的需求选择合适的循环结构来完成相应的任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [for循环与while循环](https://blog.csdn.net/qq_45821255/article/details/118893547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [for循环和while循环的区别和简单应用](https://download.csdn.net/download/weixin_38571449/13743730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值