鱼C论坛

 找回密码
 立即注册
查看: 1474|回复: 6

[已解决]关于列表的几个问题

[复制链接]
发表于 2020-7-8 23:59:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Sweet_Dream 于 2020-7-8 23:59 编辑

学习完第22节课了,关于列表有几个小问题:

1。选取列表中指定位置的数据
        nums = [0, 1, 2, 3, 4, 5, 6, 7]
        想要获得nums中的第1,4,8位的值,能用一句话得到吗?
        我的做法是:pick = (nums[0], nums[3], nums[7]),还有更简单的方法吗?

2。排序
        nums = [3, 6, 4, 5, 9, 0, 1]
        使用nums.sort可以进行从小到大排列,但是nums会被覆盖,如何保留nums的列表,同时将排序结果赋值给另外一个列表?(不使用copy提前复制原列表)

3。 替换
        nums = [3, 1, 3, 4, 5, 3, 7]
        如何快速的将所有的3替换成0?

4。nums = [0, 1, 2, 3, 4, 5, 6, 7]
     nums = (0, 1, 2, 3, 4, 5, 6, 7)
     nums = 0, 1, 2, 3, 4, 5, 6, 7
        三个语句生成的列表有区别吗?
最佳答案
2020-7-9 00:08:08
我的做法是:pick = (nums[0], nums[3], nums[7]),还有更简单的方法吗?
没有。

使用nums.sort可以进行从小到大排列,但是nums会被覆盖,如何保留nums的列表,同时将排序结果赋值给另外一个列表?(不使用copy提前复制原列表)
  1. sortedlist = sorted(nums)
复制代码


如何快速的将所有的3替换成0?
  1. for index, value in enumerate(nums):
  2.     if value == 3:
  3.         nums[index] = 0
复制代码


三个语句生成的列表有区别吗?
第一个是列表,第二、三个是元组

求个最佳~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-9 00:08:08 | 显示全部楼层    本楼为最佳答案   
我的做法是:pick = (nums[0], nums[3], nums[7]),还有更简单的方法吗?
没有。

使用nums.sort可以进行从小到大排列,但是nums会被覆盖,如何保留nums的列表,同时将排序结果赋值给另外一个列表?(不使用copy提前复制原列表)
  1. sortedlist = sorted(nums)
复制代码


如何快速的将所有的3替换成0?
  1. for index, value in enumerate(nums):
  2.     if value == 3:
  3.         nums[index] = 0
复制代码


三个语句生成的列表有区别吗?
第一个是列表,第二、三个是元组

求个最佳~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-9 09:02:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-9 09:09:56 | 显示全部楼层
第三点的另外的做法:
  1. #方法1
  2. nums = list(str(nums).replace('3', '0'))
  3. #方法2
  4. nums = [n for n in nums if n != 3 else 0]
复制代码

这些虽然用着简单,但是效率低,最好还是用2楼的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-9 09:29:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 14:25:19 | 显示全部楼层
lhgzbxhz 发表于 2020-7-9 09:09
第三点的另外的做法:

这些虽然用着简单,但是效率低,最好还是用2楼的方法

你两种都写错了……

应该是
  1. nums = eval(str(nums).replace('3', '0'))
复制代码
  1. nums = [0 if n == 3 else n for n in nums]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 14:27:44 | 显示全部楼层
本帖最后由 lhgzbxhz 于 2020-7-9 14:35 编辑
永恒的蓝色梦想 发表于 2020-7-9 14:25
你两种都写错了……

应该是和


[捂脸][捂脸]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 16:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表