Pyhton——List,Sorting,Tuples类型

本文档通过实际操作示例介绍了Python中列表(lists)和元组(tuples)的基本使用方法,包括创建、修改、排序及与其他数据类型的转换等。同时,还探讨了列表推导式的应用,并对比了列表与元组的不同特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是学习goole PYTHON教程过程中的一些笔记。
'#' 后面的是输出,希望你能从中获取你想要的。

Lists,Sorting,and Tuples
[1, 2, 3]
#[1, 2, 3]

a = [1, 2, 3]
a
#[1, 2, 3]
a = [1, 2, 'aaaa']
a
#[1, 2, 'aaaa']

len(a)
#3

[1, 2, 'aaaa'] + [3, 4]
#[1, 2, 'aaaa', 3, 4]
a = [1, 2, 3]
b = a
a
#[1, 2, 3]
b
#[1, 2, 3]
a[0]
#1
a[0] = 13
a
#[13, 2, 3]
b
#[13, 2, 3]

b = a[:]
b
#[13, 2, 3]
a == b
#True
a[1:3]
#[2, 3]
a[:-1]
#[13, 2]

for num in a:print num
#13
#2
#3
a.apend(4)
a
#[13, 2, 3 , 4]

None
#
a.pop(0)
#13
a
#[2, 3, 4]

del a
a
#error
a = [1, 2, 3]
a[1]
#2
del a[1]
[1, 3]

b = 12
a = b
del a
b
#12

a = [4, 2, 1, 6]
sorted(a)
#[1, 2, 4, 6]

help(sorted)
#it will show the detail how to user the sorted method

sorted(a, reverse=True)
#[6, 4, 2, 1]

a = ['ccc', 'bb', 'd', 'bb']
sorted(a)
#['aaaa', 'bb', 'ccc', 'd']
sorted(a, key=len)
#['d', 'bb', 'ccc', 'aaaa']
a
#['ccc', 'bb', 'd', 'bb']
a[1] = 'aaaz'
a
#['ccc', 'aaaz', 'd', 'bb']

def Last(s):return s[-1]
#<function Last at 0x011F0E30>
a
#['ccc', 'aaaz', 'd', 'bb']
sorted(a, key=Lost)
#['bb', 'ccc', 'd', 'aaaz']

':'.join(a)
#'cc:aaaz:d:bb'

'\n'.join(a)
#'ccc\naaaz\nd\nbb'

b =':'.join(a)
b
#'cc:aaaz:d:bb'

':'.split(b)
#[':']
b.split(':')
#['ccc', 'bb', 'd', 'bb']

a
#['ccc', 'bb', 'd', 'bb']

result = []
for s in a: result.append(s)

result
#['ccc', 'bb', 'd', 'bb']

range(20)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
(1, 2, 3)
#(1, 2, 3)

a = (1, 2, 3)
len(a)
#3
a[0]
#1
a[0] = 13
#Traceback (most recent call last):
# File "<pyshell#34>", line 1, in <module>
# a[0] = 13
#TypeError: 'tuple' object does not support item assignment

a = [(1, "b"), (2, "a"), (1, "a")]
a
#[(1, "b"), (2, "a"), (1, "a")]
sorted(a)
#[(1, 'a'), (1, 'b'), (2, 'a')]

(x, y) = (1, 2)
x
#1
y
#2

<think>好的,我现在需要帮助用户解决如何在Python中获取列表长度的问题。用户提到他们参考了一些站内资料,但可能有些混乱,所以我要先理清他们的需求。 首先,用户的问题明确:他们想知道如何获取Python列表的长度。根据提供的引用内容,用户已经看到使用len()函数的例子,比如引用[2]中的代码示例。但可能用户需要更详细的解释或者有其他疑问,比如处理多维列表或者性能问题。 接下来,我需要确认用户可能需要的其他信息。比如,用户是否了解基础用法,是否需要高级技巧或者常见错误的提示。根据之前的回答历史,用户可能对Pydantic的默认值设置比较熟悉,但现在转向了基础数据结构的问题,所以可能需要从基础开始讲解。 考虑到用户提供的引用中有提到多维数组(引用[3]中的列表包含列表),用户可能想知道如何处理嵌套列表的情况。因此,除了基本的len()函数,我应该提到如何获取多维列表中每个子列表的长度,或者整个结构中的元素总数。 另外,用户可能关心性能问题,比如len()的时间复杂度。根据Python的内部实现,列表的长度是缓存的,所以len()是O(1)操作,这一点需要说明清楚,避免用户误解。 还要注意用户可能的误区,比如混淆列表长度和字符串长度,但根据引用[2],用户已经知道len()也用于字符串,所以这里可以强调len()的通用性,但列表是直接使用,不需要额外步骤。 最后,用户可能需要一些示例代码来验证他们的理解,所以提供几个不同的例子会有帮助,包括空列表、嵌套列表,以及使用生成器表达式的情况。同时,常见错误的提示,比如未初始化列表导致NameError,可以帮助用户避免常见问题。 总结步骤: 1. 确认用户需求:获取列表长度。 2. 指出主要方法:len()函数。 3. 提供基础示例,包括不同情况。 4. 扩展多维列表的情况。 5. 解释性能特点。 6. 常见错误及解决方法。 7. 相关问题引导深入学习。 需要确保回答结构清晰,逐步引导用户理解,同时覆盖可能的扩展问题。</think>在 Python 中获取列表长度的标准方法是使用内置函数 `len()`,其底层实现直接读取列表对象的 `ob_size` 属性,时间复杂度为 $O(1)$[^1][^2]。 ### 一、基础用法 ```python # 标准列表长度获取 my_list = [10, 20, 30, 40] length = len(my_list) print(length) # 输出: 4 # 空列表验证 empty_list = [] print(len(empty_list)) # 输出: 0 # 嵌套列表计算外层长度 nested_list = [[1,2], [3,4,5]] print(len(nested_list)) # 输出: 2 (统计一级元素数量) ``` ### 二、多维列表处理 ```python # 计算二维列表总元素数 matrix = [ [1, 2, 3], [4, 5], [6, 7, 8, 9] ] total_elements = sum(len(sublist) for sublist in matrix) print(total_elements) # 输出: 9 # 三维列表示例 cube = [ [[1,2], [3]], [[4,5,6], [7,8], [9]] ] total = sum(len(sublist) for layer in cube for sublist in layer) print(total) # 输出: 6 ``` ### 三、性能特征 1. **时间复杂度恒定**:`len()` 直接访问列表对象的 `ob_size` 属性,时间复杂度为 $O(1)$[^3] 2. **内存占用无关**:列表长度与元素内存大小无关,仅统计元素数量 3. **特殊对象支持**:同样适用于字符串、字典、集合等容器类型 ### 四、常见错误处理 ```python # 未初始化列表的情况 try: print(len(undefined_list)) except NameError: print("列表未定义") # 触发异常处理 # 非列表对象的处理 dict_obj = {"key": "value"} print(len(dict_obj)) # 输出: 1 (统计字典键值对数量) ``` ### 五、扩展应用场景 1. **循环控制**: ```python for index in range(len(my_list)): print(f"索引 {index} 的值: {my_list[index]}") ``` 2. **列表初始化**: ```python preallocated = [None] * 5 # 创建长度为5的空列表 print(len(preallocated)) # 输出: 5 ``` 3. **数据校验**: ```python def validate_list(input_data): if not isinstance(input_data, list): raise TypeError("需要列表类型输入") if len(input_data) < 3: raise ValueError("列表长度至少为3") ``` ### 验证示例 ```python sample = [x for x in range(10) if x%2 ==0] print(len(sample)) # 输出: 5 (0,2,4,6,8) ``` --相关问题--: 1. 如何动态维护固定长度的Python列表? 2. 列表长度与内存占用的关系是什么? 3. 为什么说Python列表的`len()`操作是常数时间复杂度? 4. 如何实现多维数组的全元素遍历? [^1]: 列表对象在CPython实现中存储了长度属性 [^2]: Python官方文档明确说明`len(s)`返回容器的条目数 [^3]: 时间复杂度分析基于CPython 3.10源码的PyList_Size实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值