Python之一些列表的练习题

news2024/9/23 13:22:33

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:
		continue
	L2.append(L[i])

7.生成句子中不同字母的列表。也就是说,如果字母“X”在句子中使用了两次,它应该只在列表中出现一次。列表中没有标点符号。简单起见,考虑标点符号为下列字符:.;?!-

jvzi=input()
fuhao=[".",",",";","?","!","-"]
list1=[]
for i in jvzi:
    if (i in fuhao)or (i in list1) :
        continue
    list1.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+=1
	i+=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.coloradmin.cn/o/2157628.html

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

相关文章

Kaggle-狗种类的识别(Pytorch框架)基本图像识别流程

狗类别实现过程 一. 将数据集按标签分类&#xff0c;将标签转换为数字表示&#xff0c;并制作数据集 二. 搭建网络框架&#xff0c;inception&#xff0c;或者ResNet 三. 选择优化函数&#xff0c;训练模型 数据集制作 首先分析数据集&#xff0c;题中已经很明确告诉有120 种…

头晕,脖子酸痛?颈椎有问题,人就废了一半!颈椎病分3级,不同阶段治疗方法不一样!

每天下午快下班时&#xff0c;在办公室就会看到一种现象&#xff1a; 大家纷纷扭脖子、抬头、耸肩膀......诶&#xff0c;脖子太难受了&#xff01; 毕竟每天长时间的面对电脑&#xff0c;我们的脖子在承受着巨大的压力。尤其&#xff0c;低头 45 度时&#xff0c;脖子甚至承受…

Fyne ( go跨平台GUI )中文文档- 扩展Fyne (七)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2 这是一个系列文章&#xff1a; Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne ( go跨平台GUI…

图像处理软件,常用于照片编辑和修饰

一、简介 1、一款功能强大的图像处理软件&#xff0c;常用于照片编辑和修饰。它提供多种工具和特效&#xff0c;允许用户调整照片的亮度、对比度、色彩、锐化等 二、下载 1、文末有下载链接,不明白可以私聊我哈&#xff08;麻烦咚咚咚&#xff0c;动动小手给个关注收藏小三连&a…

【掘金量化使用技巧】用日线合成长周期k线

掘金API中的接口最长的周期是‘1d’的&#xff0c;因此周线/月线/年线等数据需要自己进行合成。 基本思路 用日线合成长周期的k线只需要确定好合成的周期以及需要的数据即可。 周期: 一般行情软件上提供年k、月k、周k&#xff0c;我也选择年、月、周再加一个季度频率。 数据:…

图纸加密防泄密软件 | 从设计到交付,2024年值得关注的图纸加密软件大盘点!

图纸者&#xff0c;匠心之凝聚&#xff0c;智慧之结晶。然&#xff0c;信息之海浩瀚无垠&#xff0c;暗流涌动&#xff0c;图纸之安全&#xff0c;实乃企业之头等大事。 故&#xff0c;择一良器&#xff0c;以密护图纸&#xff0c;实为当务之急。 以下&#xff0c;七款图纸加密…

Linux之实战命令01:xargs应用实例(三十五)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

高刷显示器哪个好?540Hz才有资格称高刷

高刷显示器哪个好&#xff1f;说实话&#xff0c;540Hz这些才能成为高刷显示器&#xff0c;什么200,240的&#xff0c;都不够高&#xff0c;什么是从容&#xff0c;有我不用才叫从容。下面我们一起来看看540Hz的高刷显示器都有哪些吧&#xff01; 1.高刷显示器哪个好 - 蚂蚁电…

2024风湿免疫科常用评估量表汇总,附操作步骤与评定标准!

常笑医学整理了5个风湿免疫科常用的评估量表&#xff0c;包括类风湿关节炎患者病情评价&#xff08;DAS28&#xff09;、系统性狼疮活动性测定&#xff08;SLAM&#xff09;等。这些量表在常笑医学网均支持在线评估、下载和创建项目使用。 01 类风湿关节炎患者病情评价 &#x…

实践中如何选择o1或sonnet3-5?

简述 AI更新太快导致我们不知选择什么使用更好&#xff1f;本文对比了新模型o1系列和Claude-3.5-sonnet的一些特点&#xff0c;针对不同开发场景提供了选择建议&#xff0c;希望能为你提供一些模型选择的参考。 模型对比 o1系列: 优势&#xff1a; 推理能力非常强&#xff0…

【动态规划】两个数组的 dp 问题二

两个数组的 dp 问题 1.正则表达式匹配2.交错字符串3.两个字符串的最小ASCII删除和4.最长重复子数组 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1…

高德地图自定义点标记

const markerContent <div class"custom-content-marker"> <span>摄像机<span> <img src"//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png"> </div> marker.value new AMap.Marker({position:…

Ubuntu搭建java开发环境

一&#xff1a;Ubuntu安装 1、下载Ubuntu 24.04.1 LTS 官网下载地址&#xff1a;https://releases.ubuntu.com/24.04.1/ubuntu-24.04.1-desktop-amd64.iso 可以直接点击这里下载 2、使用VMware安装 新建虚拟机 之后一直下一步&#xff0c;到如下界面&#xff0c;选择 刚刚…

【MYSQL】聚合查询、分组查询、联合查询

目录 聚合查询聚合函数count()sum()avg()max()和min()总结 分组查询group by 子句having 子句 联合查询笛卡尔积内连接外连接自连接子查询单行子查询多行子查询from子句使用子查询 合并查询 聚合查询 聚合查询就是针对表中行与行之间的查询。 聚合函数 count() count(列名)&a…

战神5/战神:诸神黄昏/God of War Ragnarok(容量175GB)百度网盘下载

版本介绍 v1.0.612.4312|容量175GB|官方简体中文|支持键盘.鼠标.手柄|赠单板学习补丁 配置要求 战神5/战神&#xff1a;诸神黄昏/God of War Ragnarok 游戏介绍 不灭的北欧传奇 由Santa Monica Studio出品、Jetpack Interactive负责PC移植的佳作《God of War Ragnark》将带您…

python实现语音唤醒

1. 环境 python版本&#xff1a;3.11.9 2.完整代码 import sqlite3 import timefrom funasr import AutoModel import sounddevice as sd import numpy as np from pypinyin import lazy_pinyin# 模型参数设置 chunk_size [0, 10, 5] encoder_chunk_look_back 7 decoder_c…

气膜体育馆:低成本、高效益的体育空间解决方案—轻空间

随着全民健身和健康生活理念的兴起&#xff0c;各类体育场馆需求日益增加。在这样的市场背景下&#xff0c;气膜体育馆凭借其低成本、快速建造以及灵活多变的空间设计&#xff0c;成为现代体育场馆建设的新趋势。气膜技术为体育场馆提供了一种全新的解决方案&#xff0c;让运营…

Tomcat 漏洞复现

1、CVE-2017-12615 1、环境开启 2、首页抓包&#xff0c;修改为 PUT 方式提交 Tomcat允许适用put方法上传任意文件类型&#xff0c;但不允许isp后缀文件上传&#xff0c;因此需要配合 windows的解析漏洞 3、访问上传的jsp文件 4、使用工具进行连接 2、后台弱⼝令部署war包 1…

新建flask项目,配置入口文件,启动项目

pycharm新建flask项目时&#xff0c;会提供一个创建flask项目的导向&#xff0c;自动设置虚拟环境&#xff0c;并且安装flask及其依赖而vscode新建flask项目时&#xff0c;需要手动设置虚拟环境并安装flask&#xff0c;需要在终端使用pip install flask命令来安装flask及其依赖…

一文了解什么是大模型?到底大模型有什么用呢?

党中央、国务院面向未来准确把握时代大势&#xff0c;已于十三五期间部署推进数字中国建设&#xff0c;《国民经济和社会发展第十四个五年规划和2035年远景目标纲要》更是将“加快数字化发展&#xff0c;建设数字中国”单列成篇&#xff0c;要求“提高数字政府建设水平”&#…