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  
  1. 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[:]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/147880.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568教学实验箱_操作教程:5-15 直流电机控制实验

一、产品简介 TL3568-PlusTEB人工智能实验箱 国产高性能处理器 64 位 4 核低功耗 2.0 GHz超高主频 1T 超高算力 NPU 兼容鸿蒙等国产操作系统 二、实验目的 1、熟悉Qt程序的开发流程&#xff1b; 2、掌握Qt Creator的基础开发使用&#xff1b; 3、通过编写Qt程序实现直流…

操作无法完成,因为文件已在 SWVisualize2022.BoostService 中打开

在使用 Windows 卸载文件的时候&#xff0c;会出现下面的情况 类似于Linux的强制删除&#xff0c;我们需要首先停止服务&#xff0c;解决方案如下&#xff0c; 进入 cmd 命令行窗口&#xff0c;首先停止服务 net stop "SWVisualize2022.BoostService" 如果需要&am…

ANSYS Workbench三维随机多面体骨料混凝土细观

在三维混凝土细观的有限元模拟中&#xff0c;混凝土细观几何模型的建立是仿真前提&#xff0c;也是其难点。在ANSYS内高效的建立三维几何模型以匹配混凝土中多面体骨料的外形、分布、级配等参数&#xff0c;是三维混凝土细观有限元仿真模拟的关键。 随机多面体骨料3D模型的建…

香港科技大学广州|金融科技学域博士招生宣讲会——武汉大学、华中科技大学

&#x1f514;&#x1f514;&#x1f514;明日宣讲&#x1f514;&#x1f514;&#x1f514; &#x1f490;香港科技大学广州&#xff5c;金融科技学域博士招生宣讲会 &#x1f4cd;武汉大学专场 &#x1f559;时间&#xff1a;2024年9月24日&#xff08;星期二&#xff09;1…

fmql之字符驱动设备(1)

上一篇文章&#xff0c;记录了模块入口和出口函数的编写。 这一篇要继续编写字符驱动程序了。 仍然参考正点原子&#xff1a; 第3.3讲 我的第一个Linux驱动-字符设备驱动框架搭建实验_哔哩哔哩_bilibili 驱动注册和卸载 字符驱动设备的注册函数位register_chrdev 卸载函数…

让PlatformIO支持ESP32C3 SuperMini

先介绍一下这块小尺寸板子&#xff1a; ESP32C3SuperMini是一款基于 Espressif ESP32-C3 WiFi/蓝牙双模芯片的 IoT 迷你开发板。ESP32-C3 是一款32 位 RISC-V CPU&#xff0c;包含FPU&#xff08;浮点单元&#xff09;&#xff0c;可进行32 位单精度运算&#xff0c;具有强大的…

如何写出高收录词的listing文案,先做好这一点

在亚马逊上&#xff0c;关键词是连接买家搜索与产品之间的桥梁&#xff0c;超过80%的购买行为都是通过搜索关键词开始的。因此&#xff0c;文案中包含的精准关键词越多&#xff0c;Listing越能匹配买家的需求&#xff0c;从而提高自然排名并优化广告效果。 亚马逊的收录分为静…

vue.js 展示一个树形结构的数据视图,并禁用其中默认选中的节点

功能描述 展示树形结构&#xff1a; 使用 Element UI 的 <el-tree> 组件展示树形结构数据。数据由 content 数组提供&#xff0c;树形结构包含了嵌套的节点及其子节点。 默认选中节点&#xff1a; 使用 defaultCheckedKeys 属性指定默认选中的节点。这些节点在树形结构渲…

基于51单片机控制恒压供水系统设计

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图文档目录设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设…

手把手教您轻松实现微信/QQ/TIM多开,消息防撤回!

文章目录 📖 介绍 📖🏡 环境 🏡📒 防回撤 📒🚀 自动补丁工具(支持多开,支持微信、QQ、TIM)🚀 最新版手动补丁📝 步骤一📝 步骤二⚓️ 相关链接 ⚓️📖 介绍 📖 在日常聊天中,微信消息被撤回的情况屡见不鲜,总让人心中充满好奇——那些被删去的内容…

【c数据结构】OJ练习篇 帮你更深层次理解链表!(相交链表、相交链表、环形链表、环形链表之寻找环形入口点、判断链表是否是回文结构、 随机链表的复制)

目录 一. 相交链表 二. 环形链表 三. 环形链表之寻找环形入口点 四. 判断链表是否是回文结构 五. 随机链表的复制 一. 相交链表 最简单粗暴的思路&#xff0c;遍历两个链表&#xff0c;分别寻找是否有相同的对应的结点。 我们对两个链表的每个对应的节点进行判断比较&…

量化交易----数据透视表----融资融券优惠代码

我们在制定和执行量化策略的过程中&#xff0c;常常需要快速检查目标因子组合的分组下portfolio的超额收益&#xff0c;我们来提供一个快速的方法&#xff0c;可以实现单因子分组&#xff0c;双因子分组和三因子分组 比如拿到一个分析师预测的数据库&#xff0c;和A股市场政策…

python:django项目知识点02——搭建简易授权码核销系统

前言 如标题所述&#xff0c;本篇博客主要围绕快速搭建业务系统展开&#xff0c;旨在&#xff1a;快速、逻辑分明。 适用对象 djangomysql&#xff0c;实现一套授权码核销功能&#xff0c;包含用户登录和授权码核销两个方面内容 业务代码 前述 基础代码已在上篇博客中讲述&…

Vue3:provide-inject实现组件通信

目录 一.作用 1.跨层级通信 2.避免重复声明 3.封装通用服务 二.性质 1.非响应式 2.不可选项 3.高级用法 三.使用 1.爷组件 2.父组件 3.子组件 四.代码 1.爷组件代码 2.父组件代码 3.子组件代码 五.效果 Vue3中的provide-inject机制是用于在组件树中进行依赖注…

01【MATLAB】最小二乘系统辨识

目录 1.系统辨识的定义及其分类 1.1 系统辨识的定义 1.2 系统辨识的分类 2.参数模型 3.系统辨识的步骤 一、最小二乘法&#xff08;Least Squares Method&#xff09;一般步骤 二、LSM原理及应用 三、LSM在控制系统建模中的应用 1.系统辨识的定义及其分类 1.1 系统辨识的…

有没有适合初学者的 OpenLayers 项目实战案例推荐?

对于初学者来说&#xff0c;OpenLayers 提供了一系列实用的项目实战案例&#xff0c;可以帮助你快速上手并掌握关键的开发技能。以下是一些推荐的入门项目案例&#xff1a; 1.基础地图显示&#xff1a; 学习如何创建一个简单的地图视图&#xff0c;并加载基础的地图图层&…

19个邮件群发小技巧,最大水平充分利用邮件营销

邮件群发在现代通信中占据着非常重要的位置。无论是在商业环境还是个人生活中&#xff0c;它都有着广泛的应用。无论您是公司的市场推广专家&#xff0c;还是社交团体的筹办者&#xff0c;掌握有效的邮件群发技巧会帮助您更好地传递信息、节约时间和提升工作效率。 确定目标受众…

DK5V100R20S双引脚同步整流芯片12V 2.4A封装SM-7

高性能双引脚同步整流芯片 DK5V100R20S是一款简单高效率的同步整流芯片&#xff0c;只有A&#xff0c;K两个引脚&#xff0c;分别对应肖特基二极管PN管脚。芯片内部集成了100V功率NMOS管&#xff0c;可以大幅降低二极管导通损耗&#xff0c;提高整机效率&#xff0c;取代或替换…

Debian安装mysql遇到的问题解决及yum源配置

文章目录 一、安装mysql遇到的问题解决二、Debain系统mysql8.0的安装以及远程连接三、彻底卸载软件四、Python 操作 mysql五、debian软件源source.list文件格式说明1. 第一部分2. 第二部分3. 第三部分4. 第四部分5. 关于源的混用问题6. 按需修改自己的sources.list7. 更新软件包…

详解运行时安全检测神器:Falco

在当今快速发展的云计算和容器技术时代,安全已成为组织面临的一大挑战。随着云原生应用的普及,传统的安全措施已不足以应对复杂的分布式环境。在这样的背景下,Falco应运而生,成为云原生安全领域的一颗新星。目前在github中&#xff0c;该项目已经拥有了7.3k的star&#xff0c;众…