Python刷题系列(6)_列表List(上)

简介: 列表是一个有序的,可修改的(增删查改),元素以逗号分隔,以中括号包围的序列。

List列表



列表是一个有序的,可修改的(增删查改),元素以逗号分隔,以中括号包围的序列。

【1】支持动态的元素的增加。

【2】支持不同类型的元素在一个列表中。

【3】List is an Object。

参考:》》List


1、对某一个列表进行计数



方法一:在不用count这个函数的情况下,如何对某一个列表进行计数

首先创建一个列表,主要思想是建立了一个字典,然后遍历整个列表,判断字符串是不是字典的key,如果是则value加1,如果不是则value赋值为1,最终打印出统计结果。

list = ['qwe','xsa','jiu','qwe','xsa','jiu','www','oouy']
s={}
for i in list:
  if i not in s:
    s[i]=1
  else:
    s[i]+=1
for k in s:
  print(k,s[k])

94875fc249234a14ab0c55fbbe463442.png

方法二:使用count函数

list = ['qwe','xsa','jiu','qwe','xsa','jiu','www','oouy']
list = ['qwe','xsa','jiu','qwe','xsa','jiu','www','oouy']
a=set(list)
for i in a:
  num=list.count(i)
  print(i,num)

上面的代码当中有使用set函数:

这里使用set是为了给列表进行去重,因为set当中的元素不能有重复值


2、从列表中获取最大数字


def max_num_in_list( List ):
    max = List[ 0 ] # 初始最大的是列表的第一个值
    for a in List:
        if a > max:
            max = a
    return max
print(max_num_in_list([1, 2, -8, 0])) # 2

注:这里将 a > max 变成 小于号就能求最小值。

285903fd22254398b908a2474983ca07.png


3、将列表中的所有项目相乘


def multiply_list(items):
    tot = 1
    for x in items:
        tot *= x
    return tot
print(multiply_list([1,2,-8])) #  -16

5d36cc5b237645f48a0a5346c6d4777c.png



4、计算字符串的数量


编写一个Python程序来计算字符串的数量,其中字符串长度为2或更多,并且给定字符串列表中的第一个和最后一个字符相同。

  • 示例列表 : [‘abc’, ‘xyz’, ‘aba’, ‘1221’]
  • 预期结果 : 2image.png
def match_words(words):
  ctr = 0
  for word in words:
    if len(word) > 1 and word[0] == word[-1]:
      ctr += 1
  return ctr
print(match_words(['abc', 'xyz', 'aba', '1221']))


5、对列表中元组最后一个元素递增排序


编写一个 Python 程序来获取一个列表,该列表按给定的非空元组列表中每个元组中的最后一个元素按递增顺序排序。


  • 样本列表 : [(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)]
  • 预期成果 : [(2, 1), (1, 2), (2, 3), (4, 4), (2, 5)]


a253ff54f4284bf48b2431a89ad0243a.png

2fedcc4eeb3b4fbba610180e498cf870.png

def last(n): return n[-1]
def sort_list_last(tuples):
  return sorted(tuples, key=last) # key是一个函数
print(sort_list_last([(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)]))
# [(2, 1), (1, 2), (2, 3), (4, 4), (2, 5)]


注:这里如果把 return n[-1]改成 return n[0]则就是用元组的第一个元素来排序。


6、从列表中删除重复项


3c1e08129b2f47b59c7db3f131998172.png

a = [10,20,30,20,10,50,60,40,80,50,40]
dup_items = set() #set当中的元素不重复
uniq_items = []
for x in a:
    if x not in dup_items:
        uniq_items.append(x)
        dup_items.add(x)
print(list(dup_items)) #[40, 10, 80, 50, 20, 60, 30]
print(dup_items)#{40, 10, 80, 50, 20, 60, 30}
print(uniq_items)#[40, 10, 80, 50, 20, 60, 30]


6、将字符列表转换为字符串



a92f506ce96248b1a466e92de8c892f7.pngae9f9b059798495ab33d8d473745a2da.png


Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

s = ['a', 'b', 'c', 'd']
str1 = ''.join(s)
print(str1)
print(type(str1))
'''
abcd
<class 'str'>
'''


7、访问列表的索引


编写一个Python程序访问列表的索引。

030e6e213fc24063b771c844f780e030.png


【1】enumerate

【1】enumerate()是python的内置函数

【2】enumerate在字典上是枚举、列举的意思

【3】对于一个可迭代的(iterable)可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值

【4】enumerate多用于在for循环中得到计数

【5】例如对于一个seq,得到:

(0, seq[0]), (1, seq[1]), (2, seq[2])
• 1

【6】enumerate()返回的是一个enumerate对象,例如:

88a1c97a953a43599acddc6623eef351.png

nums = [5, 15, 35, 8, 98]
for num_index, num_val in enumerate(nums):
    print(num_index, num_val)
'''
0 5
1 15
2 35
3 8
4 98
'''


8、两个列表之间的区别


编写一个 Python 程序来获取两个列表之间的差异。

33bc3a98326f4dfdb82db2d5c55afd0d.png

list1 = [1, "3", 5, 7, "你好"]
list2=[1, 2, 4, 6, 7, 7, 8]
diff_list1_list2 = list(set(list1) - set(list2))
diff_list2_list1 = list(set(list2) - set(list1))
total_diff = diff_list1_list2 + diff_list2_list1
print(total_diff)#['你好', 5, '3', 8, 2, 4, 6]


9、删除指定元素后打印列表


编写一个 Python 程序,以便在删除第 0、第 4 和第 5 个元素后打印指定的列表。

color = ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow']
color = [x for (i,x) in enumerate(color) if i not in (0,4,5)]
print(color) #['Green', 'White', 'Black']


10、若两列表至少有一个公共成员,返回 True


编写一个 Python 函数,该函数采用两个列表,如果它们至少有一个公共成员,则返回 True。

7d97b31b7d274863b1053072a472403f.png

def common_data(list1, list2):
     result = False
     for x in list1:
         for y in list2:
             if x == y:
                 result = True
                 return result
print(common_data([1,2,3,4,5], [5,6,7,8,9]))
print(common_data([1,2,3,4,5], [6,7,8,9]))


11、从列表中找长度超过 n 的单词列表


编写一个 Python 程序,从给定的单词列表中查找长度超过 n 的单词列表。


1d02aeaf347a4f91bdb3b9b235736727.png82029caae7234b27be7511c50ce96406.png

def long_words(n, str):
    word_len = []
    txt = str.split(" ")
    for x in txt:
        if len(x) > n:
            word_len.append(x)
    return word_len 
print(long_words(3, "The quick brown fox jumps over the lazy dog"))
# ['quick', 'brown', 'jumps', 'over', 'lazy']


12、克隆或复制列表


c422247e8b334e03ad26689e37cb2cee.png00d8a0fcc0814ad4aa796abd80819174.png

original_list = [10, 22, 44, 23, 4]
new_list = list(original_list)
print(original_list)
print(new_list)


13、检查列表是否为空


l = []
if not l:
  print("List is empty")

626bfcbf0fbf468cb259e1081fd6dbe6.png


14、将多个整数的列表转换为单个整数

编写一个 Python 程序,将多个整数的列表转换为单个整数。

74478c0ffdc148a987d0135384f23f9c.png

L = [11, 33, 50]
print("Original List: ",L)
x = int("".join(map(str, L)))
#map函数可以作用于列表的每一个元素上面
print("Single Integer: ",x)


15、获取列表中元素的频率


9ce8a2bc72ed4d5c949cde555afc16ad.png3b44f579322e4e858f6359168264e44c.png

import collections
my_list = [10,10,10,10,20,20,20,20,40,40,50,50,30]
print("Original List :\n",my_list)
ctr = collections.Counter(my_list)
print("Frequency of the elements in the List :\n",ctr)
print(type(ctr))
'''
Original List :
 [10, 10, 10, 10, 20, 20, 20, 20, 40, 40, 50, 50, 30]
Frequency of the elements in the List :
 Counter({10: 4, 20: 4, 40: 2, 50: 2, 30: 1})
<class 'collections.Counter'>
'''

【2】counter

》》counter详细



相关文章
|
1天前
|
索引 Python
List(列表)
List(列表)。
9 4
|
2天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
15天前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
146 2
|
15天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
14 0
|
16天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
13 0
|
16天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
15 0
|
16天前
|
C语言 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第24天】在Python编程的世界中,追求代码的简洁性和可读性是永恒的主题。列表推导式(List Comprehensions)作为Python语言的一个特色功能,提供了一种优雅且高效的方法来创建和处理列表。本文将深入探讨列表推导式的使用场景、语法结构以及如何通过它简化日常编程任务。
|
17天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
12 0
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
30 0
|
1月前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景