Python之一些列表的练习题
1.比较和对比字符串、列表和元组。例如,它们可以容纳哪类内容以及在数据结构上可以做哪些操作。
1. 内容类型:- 字符串: 只能包含字符(文本)。- 列表: 可以包含任意类型的数据,如数字、字符串、其他列表等。- 元组: 可以包含任意类型的数据,与列表类似。3. 操作:(1)字符串:- 索引和切片操作- 字符串连接和复制- 字符串方法(如 `split()`, `replace()`, `upper()` 等)(2)列表:- 索引和切片操作- 列表添加、删除、修改元素的方法(如 `append()`, `remove()`, `sort()` 等)- 列表方法和函数(3)元组:- 索引和切片操作- 元组函数(如 `count()`, `index()` 等)
2.创建一个列表,其中包含100个零。至少用三种不同的方法来实现。
方法一:
list1=[]
for i in range(100):list1.append(0)
方法二:
list2=[0 for i in range(100)]
方法三:
list3=[0]*100
3.创建100个整数,其值和索引相同,例如,L[5]=5的列表。
list1=[i for i in range(1,101)]
4.基于原整数列表,编写Pyhon代码生成具有相同元素个数的新列表。例如,在新列表中的每个整数,是原始列表中对应元素及其相邻元素的和。例如,若原始列表为listA=[10,20,30,40,50],则新表为listB=[30,60,90,120,90]。
对于listB来说,只有第一个和最后一个元素不一样,其他元素都是listA相邻三个元素之和。
listB=[]
listB.append(list1[0]+list1[1])
for i in range(1,len(list1)-1):listB.append(list1[i-1]+list1[i]+list1[i+1])
listB.append(list1[-2]+list1[-1])
print(list2)
5.对列表L=[1,3,5,7,9]使用分片,创建一个新的列表,没有值3。也就是说L2=[1,5,7,9]。
L2=L[0]+L[2:]
或者
L2=[]
for i in range(len(L)):if L[i]==0:continueL2.append(L[i])
7.生成句子中不同字母的列表。也就是说,如果字母“X”在句子中使用了两次,它应该只在列表中出现一次。列表中没有标点符号。简单起见,考虑标点符号为下列字符:.;?!-
jvzi=input()
fuhao=[".",",",";","?","!","-"]
list1=[]
for i in jvzi:if (i in fuhao)or (i in list1) :continuelist1.append(i)
8.不用if语句创建包含20个偶数的列表
(a)使用循环。
(6)使用列表解析。
(a)
for i in range(0,40,2):list1.append(i)
(b)
list1=[i for i in range(0,40,2)]
14.给定代码:
myList=[‘1’,‘2’,‘3’,‘4’,‘5’]
for z in range(0,len(myList)):
text='".join(myList[z])
text.center(10)
(a)如果在shell中运行此代码,输出什么?

(b)如果这是一个程序,在shell中运行,输出什么?
没有输出
©为什么得到的输出不同?
在Python shell中输入代码后就会执行,并将给语句的值输出。
但作为一个程序运行,要用print函数才能进行输出
(d)修正程序,使在两种环境中运行结果相同。
将text.center(10)改成print(text.center(10))
15.给定列表项,写一个程序,生成以下形式的列表:[a,b,c,…,z]→ [[z],[y,z],[x,y,z],………,[a,b,…,y,z]。提示:可能会用到分片。
ll=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
lll=[]
for i in range(len(ll)):lll.append(ll[len(ll)-i-1:])
print(lll)
16.可索引和可循环:
(a)举两个可索引类型的例子。
(b)给出两个可循环类型的侧子。
(e)其中一类的成员身份是否意味另一类的成员身份呢?解释原因
(a) 可索引类型的例子:
列表 (list):list[index]
元组 (tuple):tuple[index]
(b) 可循环类型的例子:
列表 (list):for i in list
字符串 (string):for c in string
(c)不一定。
可索引类型和可循环类型并不是完全等同的概念。
可索引类型是指可以通过索引访问其中元素的数据类型。这包括列表、元组、字符串等。
可循环类型是指可以使用 for 循环遍历其中元素的数据类型。这也包括列表、元组、字符串等。
也就是说,虽然列表和元组同时满足可索引和可循环的特性,但并不是所有可索引类型都一定是可循环类型,反之亦然。
例如,字典 (dictionary) 就是一个可循环类型,但并不是可索引类型(至少不能通过整数索引访问)。
所以,其中一类的成员身份并不一定意味着另一类的成员身份。
17.列表和字符串有共同的特点,但也有一些可作用于列表但是不能作用于字符串的操作。请描述它们。
共同特点:
1. 都是可索引的数据类型,可以通过索引访问其中的元素。
2. 都是可迭代的,可以使用 `for` 循环遍历其中的元素。
3. 都支持切片操作,可以通过切片获取其中的一部分元素。不同之处:
1. 列表是可变的,而字符串是不可变的。- 列表中的元素可以被修改、添加或删除。- 字符串中的字符是不可修改的。
2. 一些仅适用于列表的操作:- 追加元素: `list.append(item)`- 插入元素: `list.insert(index, item)`- 删除元素: `list.remove(item)` 或 `del list[index]`- 排序: `list.sort()` 或 `sorted(list)`- 反转: `list.reverse()`- 扩展: `list1.extend(list2)`
这些操作都是针对列表的,不能直接作用于字符串。因为字符串是不可变的,无法对其中的字符进行修改。
相反,字符串有一些专属于自己的方法,如 `str.split()`, `str.join()`, `str.replace()` 等,这些操作在列表上是没有意义的。
18.表达式 sorted([‘7’,‘q’,‘e’,!3’;‘m’,'n’])的结果是什么?并解释原因
['3', '7', 'e', 'm', 'n', 'q']
比较字符时,实际上是比较他们的ASCII值。
19:考虑两个列表A和B,A返回[1,2,3],B返回[1,2,3]。
(a)创建A和B,使AisB返回真
(b)创建A和B,使AisB返回假

20.strip方法做什么?它有什么限制?
strip() 方法会去除字符串开头和结尾处的空白字符,包括空格、制表符、换行符等。
如果没有指定参数,strip() 默认去除空白字符。
也可以通过传递参数来指定需要去除的字符集。限制:
strip() 方法只能去除字符串两端的指定字符,不会去除中间的字符。
如果字符串中间有多余的空格,strip() 是无法去除的。
strip() 方法不会修改原始字符串,而是返回一个新的字符串。如果需要修改原字符串,需要手动赋值。
21.写一个函数,参数为一个字符串,将字符串转换为字符列表,对列表进行排序,将列表转换回字符串,并返回结果字符串
def sort_string(input_string): # 将字符串转换为字符列表 char_list = list(input_string) # 对字符列表进行排序 char_list.sort() # 将排序后的字符列表转换回字符串 sorted_string = ''.join(char_list) return sorted_string
22.写一个函数,参数为一个字符串,并返回字符串中的单词列表
def get_words_from_string(input_string): # 使用 split() 方法将字符串分割成列表 word_list = input_string.split() return word_list
- sort 与 sorted:
(a)sort 和sorted 之间的区别是什么?
作用对象:
sort() 是列表的一个方法,只能作用于列表。
sorted() 是一个内置函数,可以作用于任何可迭代对象,如列表、元组、集合等。
修改原对象:
sort() 会直接修改原列表,原列表的顺序会被改变。
sorted() 不会修改原对象,而是返回一个新的有序序列,原对象保持不变。
返回值:
sort() 没有返回值,它只是修改了原列表。
sorted() 返回一个新的有序序列。
总的来说,sort() 适用于需要修改原列表顺序的情况,而 sorted() 则更适用于不想改变原有序列的情况。
b)Python的哪些内置数据类型可以使用两者?
list: 列表是可以使用 sort() 和 sorted() 的内置数据类型。
26.使用for循环编写函数,参数为句子S,并将S中的单词以反序返回。例如,如果S=“What is your request”,应该返回“request your is what"。
def reverse_s(s):s_list=s.split()s_list_reverse=s_list[::-1]ss=""for i in s_list_reverse:ss=ss+i+" "return ss[:-2]
27、阅读下面的代码:
list1=[1,2,99]
list2=list1
list3=list2
list1=list1.remove(1)
print(list3)
(a)显示什么?
[2,99]
(b)怎样才能更改代码,使得项目Iist3是不变的?
将list3=list2
改成
list3=list2.copy()
28.用for 循环替换下面程序中的 while 循环。
S=“I had a cat named amanda when I was little”
count =0
for i in S:
if i == “a”:
count +=1
print count
S="I had a cat named amanda when I was little
count=0
i=0
while i<len(S):if s[i]=="a":count+=1i+=1
print(count)
29、给定一个单词列表L,按如下方式对列表上进行赋值:
L=[‘AIways’,‘look’,‘on’,‘the’,‘bright’,‘side’,‘of’, ‘life.’]
List1=[[i.upper(),i.lower(),len(i)]for i in L]
(a)List1的值是什么?
(b)用列表解析的方式实现使用List1创建一个长度为4的列表。
(a)
[['AIWAYS', 'aiways', 6], ['LOOK', 'look', 4], ['ON', 'on', 2], ['THE', 'the', 3], ['BRIGHT', 'bright', 6], ['SIDE', 'side', 4], ['OF', 'of', 2], ['LIFE.', 'life.', 5]]
(b)长度为4或6的单词
print([i[0] for i in List1 if i[2]==6 or i[2]==4])
30.使用列表解析创建一个表达式,对所输入数字的因数求和。(提示:如果输入6,应该显示12(即1+2+3+6=12))。
print(sum([i for i in range(1,n+1) if n%i==0]))
31.给定一个整数列表L,使用列表解析实现:(a)计算列表L中偶数总和。
even_sum = sum([x for x in L if x % 2 == 0])
(b)计算列表L中奇数总和。
odd_sum = sum([x for x in L if x % 2 != 0])
32、给定列表a=[1,2,3]和b=[1,2,3],如下代码得到什么结果
(a)a==b
True
(b)a is b
Flase
33:给定x=[1,2,3],写Python 代码实现如下目标:
(a)创建列表y,使改变x时也改变y。
y=x
(b)创建列表y,使改变x时不改变y。
y=x.copy()
或
y=x[:]
相关文章:
Python之一些列表的练习题
1.比较和对比字符串、列表和元组。例如,它们可以容纳哪类内容以及在数据结构上可以做哪些操作。 1. 内容类型:- 字符串: 只能包含字符(文本)。- 列表: 可以包含任意类型的数据,如数字、字符串、其他列表等。- 元组: 可以包含任意类型的数据,与列表类似。3. 操作:(1…...
MoFA: 迈向AIOS
再一次向朋友们致以中秋的祝福! MoFA (Modular Framework for Agents)是一个独特的模块化AI智能体框架。MoFA以组合(Composition)的逻辑和编程(Programmable)的方法构建AI智能体。开发者通过模版的继承、编程、定制智能体…...
c语言中define使用方法
在C语言中,#define指令是预处理指令,用于定义宏。其常用格式是: 定义常量: #define 常量名 常量值 例子: #define PI 3.14159 #define MAX_SIZE 100 这里,PI和MAX_SIZE在代码中会被替换为其对应的值。没有…...
尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)
目录: (1)秒杀业务分析 (2)搭建秒杀模块 (3)秒杀商品导入缓存 (4)redis发布与订阅实现 (1)秒杀业务分析 需求分析 所谓“秒杀”࿰…...
第十一章 【后端】商品分类管理微服务(11.4)——spring-boot-devtools
11.4 spring-boot-devtools 官网:https://docs.spring.io/spring-boot/reference/using/devtools.html Spring Boot DevTools 是 Spring Boot 提供的一组易于使用的工具,旨在加速开发和测试过程。它通过提供一系列实用的功能,如自动重启、实时属性更新、依赖项的热替换等,…...
MySQL篇(索引)(持续更新迭代)
目录 一、简介 二、有无索引情况 1. 无索引情况 2. 有索引情况 3. 优劣势 三、索引结构 1. 简介 2. 存储引擎对于索引结构的支持情况 3. 为什么InnoDB默认的索引结构是Btree而不是其它树 3.1. 二叉树(BinaryTree) 3.2. 红黑树(RB&a…...
通用接口开放平台设计与实现——(31)API服务线程安全问题确认与修复
背景 在本系列的前面一篇博客评论中,有小伙伴指出,API服务存在线程安全问题: https://blog.csdn.net/seawaving/article/details/122905199#comments_34477405 今天来确认下,线程是否安全?如不安全,如何…...
2011-2022年数字金融与企业ESG表现:效应、机制与“漂绿”检验(内含原始数据+处理代码)
2011-2022年数字金融与企业ESG表现:效应、机制与“漂绿”检验(内含原始数据处理代码) 1、时间:2011-2022年 2、来源:上市公司年报、华证ESG、北大数字普惠金融 3、指标:年份、股票代码、股票简称、行业名…...
mysql配置相关命令
一、允许所有人访问: -- 1.切换至mysql库 use mysql;-- 2.查看用户表 SELECT Host,User FROM user;-- 3.修改字段 UPDATE user SET Host % WHERE User root;-- 4.刷新权限 flush privileges;二、修改加密方式 -- 1.切换至mysql库 use mysql;-- 2.查看用户表 SELEC…...
【自用软件】IDM下载器 Internet Download Manager v6.42 Build 10
下载IDM&pj安装教程 Internet Download Manager,简称 IDM,是国外的一款优秀下载工具。目前凭借着下载计算的速度优势在外媒网站中均受好评,现在已被多数国人熟知。Internet Download Manager 提升你的下载速度最多达5倍,安排下…...
Kafka集群扩容(新增一台kafka节点)
kafka集群扩容、kafka topic迁移 现有环境 IP组件角色192.168.17.51kafka01broker1192.168.17.52kafka02broker2192.168.17.53kafka03broker3 扩容之后环境 IP组件角色192.168.17.51kafka01broker1192.168.17.52kafka02broker2192.168.17.53kafka03broker3192.168.17.54ka…...
作文笔记15 点面结合
事件中场面写作方法:点面结合(对毛主席的描写和三十万群众的描写间插进行)。好处是强化描写的层次感,既有整体形象描写,又凸显人物个性特点。 景色描写方法:动态描写,静态描写,动静…...
Spring Boot-国际化(I18N)问题
Spring Boot 国际化(I18N)问题及其解决方案 1. 引言 随着全球化的推进,软件开发中的国际化(I18N)需求日益增长。国际化是指通过设计应用程序,使其能够轻松适应不同语言和地区的需求,而无需修改…...
8. 防火墙
8. 防火墙 (1) 防火墙的类型和结构 防火墙的类型和结构可以根据其在网络协议栈中的过滤层次和实现方式进行分类。常见的防火墙类型包括: 包过滤防火墙:工作在网络层(OSI模型的第3层),主要检查IP包头的信息,如源地址、目的地址、端口号等。电路级网关防火墙:工作在会话层…...
C语言循环学习
作为初学者,学习C语言中的循环结构是非常重要的,它们能让你轻松地重复执行代码。在C语言中,常用的循环结构主要有for循环和while循环。我们将从基本概念开始,逐步讲解如何使用这两种循环,并通过示例帮助你理解和练习。…...
职业技能大赛-自动化测试笔记(Unitest)分享-3
前言 UnitTest是Python标准库中的一个模块,用于编写和执行单元测试。它提供了一组断言方法,用于验证代码的输出和状态是否符合预期。通过UnitTest框架,我们可以编写可重复执行的测试用例,并使用命令行工具或IDE轻松运行这些测试。在大多数情况下,UnitTest框架已经包含在Py…...
rocky9.2的lvs的NAT模式下的基本使用的详细示例
文章目录 前言什么是LVS?(Linux Virtual Server)LVS的组成1. 负载均衡器(Load Balancer)2. 后端服务器池(Real Servers)3. IPVS(IP Virtual Server)4. 调度算法(Schedul…...
AI健身之俯卧撑计数和姿态矫正-角度估计
在本项目中,实现了Yolov7-Pose用于人体姿态估计。以下是如何在Windows 11操作系统上设置和运行该项目的详细步骤。 环境准备 首先,确保您的计算机已经安装了Anaconda。Anaconda是一个开源的Python发行版本,它包含了conda、Python以及众多科…...
Java ETL - Apache Beam 简介
基本介绍 Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码,然后在多个批处理和流处理引擎上运行,如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道&…...
使用 Fairseq 进行音频预训练:Train a wav2vec 2.0 base model配置与实现
使用 Fairseq 进行音频预训练:配置与实现 简介 随着深度学习技术的不断发展,音频预训练在语音识别和自然语言处理领域取得了显著进展。Fairseq 是由 Facebook AI Research 开发的开源序列建模工具包,广泛应用于各种自然语言处理任务,包括音频预训练。本文将介绍如何使用 …...
G-Helper完整指南:释放华硕笔记本潜能的轻量级控制神器
G-Helper完整指南:释放华硕笔记本潜能的轻量级控制神器 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…...
如何3分钟完成Steam游戏清单下载?Onekey工具终极指南
如何3分钟完成Steam游戏清单下载?Onekey工具终极指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 你是否曾经为了获取Steam游戏清单而花费数小时?手动查找App ID、配置…...
如何在Windows系统上完整启用MacBook Pro Touch Bar显示功能
如何在Windows系统上完整启用MacBook Pro Touch Bar显示功能 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm 还在为MacBook Pro在Windows系统中Touch Bar只能用作…...
LRCGET:如何一键批量下载本地音乐歌词的终极指南
LRCGET:如何一键批量下载本地音乐歌词的终极指南 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否厌倦了为每一首本地音乐手动寻找歌词…...
Three.js实战:3D数据可视化入门与实践
Three.js实战:3D数据可视化入门与实践 前言 大家好,我是前端老炮儿。今天咱们来聊聊Three.js! 在数据可视化领域,3D可视化正变得越来越重要。Three.js作为一个强大的3D库,可以帮助我们轻松创建各种3D效果。 今天我就带…...
Logisim-evolution数字电路设计实战:从图形化设计到FPGA实现的完整工作流
Logisim-evolution数字电路设计实战:从图形化设计到FPGA实现的完整工作流 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution Logisim-evolution作为一款功能强大…...
终极指南:ViGEmBus虚拟游戏控制器驱动,Windows游戏输入革命性解决方案
终极指南:ViGEmBus虚拟游戏控制器驱动,Windows游戏输入革命性解决方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 想要在Windows…...
本地 AI 编码助手从 0 配起来:先选模型,再接 Ollama、VS Code、Claude Code 和 Codex
配本地 AI 编码助手,我现在最不建议的做法,就是打开 Ollama 以后直接搜一个最大模型下载。 这条路我踩过。 模型能跑起来,不代表能写代码。能写一个函数,不代表能进项目改文件。能在终端里回一句话,也不代表 Claude …...
微信聊天记录丢了怎么找回?这份教程很实用
你是否经历过这样的崩溃瞬间:手机清理空间时不小心删了微信聊天记录,或者重装微信后发现重要的对话全部消失?别慌,本文将系统梳理微信聊天记录丢失的常见原因,并提供多种经过验证的恢复方案,从微信官方自带…...
Llama3-8B微调显存优化实战:在单张RTX 4090上如何用PEFT+TRL跑通SFT?
Llama3-8B微调显存优化实战:单卡RTX 4090的极限挑战 当Meta发布Llama3系列模型时,8B版本因其在消费级硬件上的潜在可行性迅速成为开发者社区的焦点。但将这样一个拥有80亿参数的模型塞进24GB显存的显卡,就像试图把一头大象装进冰箱——理论上…...
