python实现列表操作

在python中,列表和数组的区别:

列表(List):可以包含不同数据类型的元素,有许多内置方法,如 append()remove() 等。

数组(Array):通常用于描述固定大小的连续存储空间,所有元素通常必须是相同的数据类型,长度不可变。对于数值计算,通常比列表更高效,因为内存存储和访问更优化,提供特定于数值运算的功能,如矩阵操作(在 NumPy 中)。

列表在灵活性和多样性上占优,而数组则在性能和特定操作上更具优势。

for _ in range(n) :

这是一个不关心循环变量的常见用法。在这个循环中,_ 是一个占位符,表示我们不需要使用循环变量的实际值,只关心循环次数。for _ in range(N) 会重复执行代码块 N 次,而不关心每次循环的索引值。

 input().strip():

strip()是一个字符串方法,用于去除字符串开头和结尾的空白字符(包括空格、制表符 \t、换行符 \n 等)。如果输入 " hello world ", 那么 line 的值将会是 "hello world"。避免用户输入不必要的空白影响后续的处理逻辑。

 常见的列表操作都有内置函数,直接使用就可以:

def ListCTRL(n, commands):
    lst = []
    for command in commands:
        parts = command.split()
        action = parts[0]

        if action == 'insert':
            i = int(parts[1])
            e = int(parts[2])
            lst.insert(i, e)
        elif action == 'print':
            print(lst)
        elif action == 'remove':
            e = int(parts[1])
            lst.remove(e)
        elif action == 'append':
            e = int(parts[1])
            lst.append(e)
        elif action == 'sort':
            lst.sort()
        elif action == 'pop':
            lst.pop()
        elif action == 'reverse':
            lst.reverse()

if __name__ == '__main__':
    N = int(input())
    commands = [input().strip() for _ in range(N)]
    ListCTRL(N, commands)

其中,这一段代码可以将同时带有换行和空格的输入数据处理为方便操作的形式:

    for command in commands:
        parts = command.split()
        action = parts[0]

每行分别对应一个command,每个操作的两部分对应两个part。

其余常用列表方法示例:

# 示例列表
my_list = [1, 2, 3, 4]

# append(x) 示例 【在列表末尾添加一个元素 x】
my_list.append(5)
print("After append(5):", my_list)  # [1, 2, 3, 4, 5]

# extend(iterable) 示例 【将可迭代对象中的元素逐一添加到列表末尾】
my_list.extend([6, 7])
print("After extend([6, 7]):", my_list)  # [1, 2, 3, 4, 5, 6, 7]

# insert(i, x) 示例 【在指定位置 i 插入元素 x】
my_list.insert(2, 'inserted')
print("After insert(2, 'inserted'):", my_list)  # [1, 2, 'inserted', 3, 4, 5, 6, 7]

# remove(x) 示例 【移除列表中第一个值为 x 的元素】
my_list.remove('inserted')
print("After remove('inserted'):", my_list)  # [1, 2, 3, 4, 5, 6, 7]

# pop([i]) 示例 【 移除并返回指定位置 i 处的元素,默认是最后一个元素】
popped_element = my_list.pop(3)
print("After pop(3):", my_list)  # [1, 2, 3, 5, 6, 7]
print("Popped element:", popped_element)  # 4

# index(x) 示例 【返回第一个值为 x 的元素的索引】
index_of_5 = my_list.index(5)
print("Index of 5:", index_of_5)  # 3

# count(x) 示例 【返回值为 x 的元素个数】
count_of_7 = my_list.count(7)
print("Count of 7:", count_of_7)  # 1

# sort(key=None, reverse=False) 示例 【对列表进行排序,可指定排序键和是否逆序】
my_list.sort(reverse=True)
print("After sort(reverse=True):", my_list)  # [7, 6, 5, 3, 2, 1]

# reverse() 示例 【将列表中的元素逆序排列】
my_list.reverse()
print("After reverse():", my_list)  # [1, 2, 3, 5, 6, 7]

# copy() 示例 【返回列表的浅拷贝】
copied_list = my_list.copy()
print("Copied list:", copied_list)  # [1, 2, 3, 5, 6, 7]

# clear() 示例 【移除列表中的所有元素】
my_list.clear()
print("After clear():", my_list)  # []

# len(list) 示例 【返回列表中元素的个数】
length_of_copied_list = len(copied_list)
print("Length of copied list:", length_of_copied_list)  # 6

# in 操作符 示例 【判断某个元素是否在列表中】
contains_3 = 3 in copied_list
print("Does copied list contain 3?:", contains_3)  # True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值