本文分享自华为云社区《Python中的循环技巧指南》,作者:柠檬味拥抱。

当我们处理数据时,有时候需要创建多个列表以存储不同类型或不同条件下的数据。在Python中,我们可以利用循环来快速、高效地创建这些列表。本文将介绍如何使用循环在Python中创建多个列表,并提供代码实例。

python用循环新建多个列表

在Python中,我们可以使用列表推导式或循环结合条件语句来创建多个列表。下面是一些常见的场景和对应的代码示例:

1. 创建固定数量的空列表

假设我们需要创建多个空列表,可以使用列表推导式和循环:

# 使用列表推导式创建多个空列表
num_lists = 5
empty_lists = [[] for _ in range(num_lists)] print(empty_lists)

这将创建一个包含5个空列表的列表。

2. 根据条件创建多个列表

有时候,我们需要根据特定条件创建不同的列表。例如,我们想将奇数和偶数分别存储在两个列表中:

# 创建奇数和偶数列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_numbers = []
even_numbers = [] for num in numbers:
if num % 2 == 0:
even_numbers.append(num)
else:
odd_numbers.append(num) print("奇数列表:", odd_numbers)
print("偶数列表:", even_numbers)

这将根据数字的奇偶性创建两个列表。

3. 根据字符串长度创建多个列表

有时候,我们需要根据字符串的长度来将字符串分类并存储在不同的列表中:

# 根据字符串长度创建多个列表
words = ["apple", "banana", "orange", "pear", "grape", "kiwi"]
short_words = []
medium_words = []
long_words = [] for word in words:
if len(word) < 5:
short_words.append(word)
elif len(word) < 7:
medium_words.append(word)
else:
long_words.append(word) print("短单词列表:", short_words)
print("中等长度单词列表:", medium_words)
print("长单词列表:", long_words)

这将根据字符串的长度将单词分别存储在三个不同的列表中。

4. 根据数据类型创建多个列表

有时候,我们需要根据数据的类型将其存储在不同的列表中。例如,我们想将整数、浮点数和字符串分别存储在不同的列表中:

# 根据数据类型创建多个列表
data = [1, 2.5, "apple", 4, "banana", 6.7, "orange", 8, 9, "pear"]
integers = []
floats = []
strings = [] for item in data:
if isinstance(item, int):
integers.append(item)
elif isinstance(item, float):
floats.append(item)
elif isinstance(item, str):
strings.append(item) print("整数列表:", integers)
print("浮点数列表:", floats)
print("字符串列表:", strings)

这将根据数据的类型将其存储在三个不同的列表中。

5. 根据条件动态创建多个列表

有时候,我们需要根据动态变化的条件来创建多个列表。例如,我们想根据用户输入的数量创建相应数量的列表:

# 根据用户输入动态创建多个列表
num_lists = int(input("请输入要创建的列表数量: "))
lists = [[] for _ in range(num_lists)] print("已创建", num_lists, "个空列表:", lists)

这将根据用户输入的数量动态创建相应数量的空列表。

6. 创建包含特定范围的数字的多个列表

有时候,我们需要根据特定范围的数字来创建多个列表。例如,我们想要将0到9之间的数字按照个位数分别存储在十个列表中:

# 创建包含特定范围的数字的多个列表
num_lists = 10
range_lists = [[] for _ in range(num_lists)] for num in range(10):
range_lists[num % num_lists].append(num) print("按照个位数存储的列表:")
for i, lst in enumerate(range_lists):
print(f"列表{i}:", lst)

这将按照个位数将0到9之间的数字分别存储在十个列表中。

7. 根据键的哈希值创建多个列表

有时候,我们想根据键的哈希值将数据分组存储在多个列表中。例如,我们有一组键值对,我们想根据键的哈希值将其存储在不同的列表中:

# 根据键的哈希值创建多个列表
data = {"apple": 3, "banana": 5, "orange": 2, "pear": 4, "grape": 6}
num_lists = 3
hash_lists = [[] for _ in range(num_lists)] for key, value in data.items():
hash_index = hash(key) % num_lists
hash_lists[hash_index].append((key, value)) print("根据键的哈希值存储的列表:")
for i, lst in enumerate(hash_lists):
print(f"列表{i}:", lst)

这将根据键的哈希值将键值对存储在三个不同的列表中。

8. 根据列表中元素的属性创建多个列表

有时候,我们需要根据列表中元素的属性值来创建多个列表。例如,假设我们有一组学生对象,我们想根据他们的成绩将他们分别存储在及格和不及格的两个列表中:

# 根据学生对象的成绩创建多个列表
class Student:
def __init__(self, name, score):
self.name = name
self.score = score students = [
Student("Alice", 85),
Student("Bob", 60),
Student("Charlie", 75),
Student("David", 40),
Student("Emma", 95)
] passing_students = []
failing_students = [] for student in students:
if student.score >= 60:
passing_students.append(student)
else:
failing_students.append(student) print("及格学生列表:")
for student in passing_students:
print(f"{student.name}: {student.score}") print("\n不及格学生列表:")
for student in failing_students:
print(f"{student.name}: {student.score}")

这将根据学生对象的成绩将学生分别存储在及格和不及格的两个列表中。

9. 根据索引范围创建多个列表

有时候,我们需要根据索引范围将列表切分成多个子列表。例如,我们有一个包含一组数字的列表,我们想将其分割成若干个小的子列表:

# 根据索引范围创建多个列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
num_lists = 3
split_lists = [] for i in range(num_lists):
start_index = i * len(numbers) // num_lists
end_index = (i + 1) * len(numbers) // num_lists
split_lists.append(numbers[start_index:end_index]) print("切分后的列表:")
for i, lst in enumerate(split_lists):
print(f"列表{i + 1}:", lst)

这将根据索引范围将原始列表切分成三个子列表。

10. 根据列表元素的值进行分组创建多个列表

有时候,我们需要根据列表元素的值进行分组,并将它们存储在不同的列表中。例如,假设我们有一组整数,我们想根据它们的奇偶性将它们分别存储在两个列表中:

# 根据列表元素的值进行分组创建多个列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
odd_numbers = []
even_numbers = [] for num in numbers:
if num % 2 == 0:
even_numbers.append(num)
else:
odd_numbers.append(num) print("奇数列表:", odd_numbers)
print("偶数列表:", even_numbers)

这将根据列表元素的奇偶性将其分别存储在奇数和偶数列表中。

11. 根据元素是否满足条件创建多个列表

有时候,我们需要根据元素是否满足特定条件来将它们存储在不同的列表中。例如,假设我们有一组数字,我们想将大于等于5和小于5的数字分别存储在两个列表中:

# 根据元素是否满足条件创建多个列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
greater_than_5 = []
less_than_5 = [] for num in numbers:
if num >= 5:
greater_than_5.append(num)
else:
less_than_5.append(num) print("大于等于5的数字列表:", greater_than_5)
print("小于5的数字列表:", less_than_5)

这将根据数字是否大于等于5来将其存储在两个不同的列表中。

总结

总的来说,本文介绍了在Python中利用循环创建多个列表的多种方法,并通过具体的代码示例进行了展示和解释。从根据固定数量、条件、数据类型、属性、索引范围、哈希值等不同角度出发,我们探讨了如何灵活地利用循环结合列表推导式或条件语句来创建多个列表。这些方法不仅提高了代码的灵活性和可维护性,还能够加速开发过程并提高程序的性能。

通过本文的学习,读者可以掌握在Python中处理数据并组织成多个列表的技巧,从而更加有效地进行数据操作和管理。同时,灵活运用循环和列表推导式等Python特性,能够使代码更加简洁、清晰和优雅。在实际项目中,根据具体需求选择合适的方法来创建多个列表将会成为编程中的重要技能,帮助提高代码的质量和效率。

点击关注,第一时间了解华为云新鲜技术~

11个Python循环技巧的更多相关文章

  1. python 循环技巧

    原文地址:http://docs.pythontab.com/python/python3.4/datastructures.html#tut-tuples 在字典中循环时,关键字和对应的值可以使用  ...

  2. Python 循环的技巧

    当在字典中循环时,用 items() 方法可将关键字和对应的值同时取出 >>> knights = {'gallahad': 'the pure', 'robin': 'the br ...

  3. 10大python加速技巧

    简介 目前非常多的数据竞赛都是提交代码的竞赛,而且加入了时间的限制,这就对于我们python代码的加速非常重要.本篇文章我们介绍在Python中加速代码的一些技巧.可能不是很多,但在一些大的循环或者函 ...

  4. 一个 11 行 Python 代码实现的神经网络

    一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...

  5. 掌握这个Python小技巧,轻松构建cytoscape导入文件

    今天小编和大家分享如何借助Python脚本轻松构建cytoscape导入文件.Cytoscape是一个非常适合展示各种相互作用关系的可视化软件. 具体来说就是可以用于蛋白互作网络的展示,miRNA与蛋 ...

  6. 《python解释器源码剖析》第11章--python虚拟机中的控制流

    11.0 序 在上一章中,我们剖析了python虚拟机中的一般表达式的实现.在剖析一遍表达式是我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化.但是显然这是不够的,因为怎么能没有流程控制呢 ...

  7. python基础:python循环、三元运算、字典、文件操作

    目录: python循环 三元运算 字符串 字典 文件操作基础 一.python编程 在面向过程式编程语言的执行流程中包含: 顺序执行 选择执行 循环执行 if是条件判断语句:if的执行流程属于选择执 ...

  8. Python循环列表的方法

    python循环列表的几种方法: 第一,依次打印列表中的各项值. 1 #!usr/bin/env python3 2 #!-*- Coding:utf-8 -*- 3 4 ''' 5 多种循环列表的方 ...

  9. python循环与基本数据类型内置方法

    今天又是充满希望的一天呢 一.python循环 1.wuile与else连用 当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码 "" ...

  10. C++11之for循环的新用法

    C++使用如下方法遍历一个容器: #include "stdafx.h" #include<iostream> #include<vector> int m ...

随机推荐

  1. 替换Spring容器中已经存在的Bean

    一.背景 我们在开发的过程中,经常会引入别人写的jar包实现某些功能.而别人的jar包一般都自动注入Spring容器中,假设别人都是通过@Bean或@Component注入的,并且没有加入@Condi ...

  2. 详解SSL证书系列(9)SSL客户端认证

    上一篇介绍了HTTPS和HTTP协议的区别,理解了HTTP加上加密处理和认证以及完整性保护后即是HTTPS,同时HTTPS也是身披SSL外壳的HTTP,那么SSL客户端认证是怎么回事呢?这篇文章我将带 ...

  3. #dp,排列#LOJ 2743「JOI Open 2016」摩天大楼

    题目 将互不相同的 \(n\) 个数重排,使得相邻两数差的总和不超过 \(L\) 的有多少种方式. \(n\leq 100,L\leq 1000\) 分析 对于排列的问题,有一种很妙的方法就是从小到大 ...

  4. OHOS IDE和SDK的安装方法

    参照OpenHarmony应用开发环境安装流程,下载安装OHOS的IDE,过程中需要全程联网. IDE,安装至D:\Tools\Huawei\DevEcoStudio. IDE安装成功之后,按照提示下 ...

  5. mogdb里xlog相关的几个参数

    openGauss/MogDB 3.0 闪回恢复测试 本文出处:https://www.modb.pro/db/411368 介绍 闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务 ...

  6. 想学习eTS开发?教你开发一款IQ-EQ测试应用

    原文:https://mp.weixin.qq.com/s/eZgifjirAW58dFCa0W7kSQ,点击链接查看更多技术内容. 开发者Mack基于HarmonyOS的ArkUI框架开发的IQ- ...

  7. vscode 搭建Django开发环境

    1.创建一个空目录2.vscode打开目录3.终端运行命令创建虚拟环境: python -m venv .venv4.选择环境:ctrl+shift+p,选择解释器->选择新建的虚拟环境5.进入 ...

  8. CentOS 编译安装golang

    一.下载go wget https://studygolang.com/dl/golang/go1.16.4.linux-amd64.tar.gz 二.解压到指定目录 tar -xvf go1.16. ...

  9. 使用Elasticsearch做手机号和身份证号的模糊检索

    使用Elasticsearch做手机号和身份证号的模糊检索 背景 客户想通过人名 四位数值 来检索人的信息 例如 张三 3421,例如需要检索包含张三和且手机号或者身份证里包含3421的数据 过程 e ...

  10. Vue 路由组件传参的 8 种方式

    我们在开发单页面应用时,有时需要进入某个路由后基于参数从服务器获取数据,那么我们首先要获取路由传递过来的参数,从而完成服务器请求,所以,我们需要了解路由传参的几种方式,以下方式同 vue-router ...