python学习 -- list

# 列表的特点:

列表是Python中的一种数据结构,具有以下特点:

  • 有序性:列表中的元素按照添加的顺序进行存储,每个元素都有一个对应的索引,可以通过索引访问和操作列表中的元素。
  • 可变性:列表是可变的,也就是说可以通过索引来修改、删除或插入元素。可以改变列表的长度、内容和顺序。
  • 可存储不同类型的元素:列表中可以同时存储不同类型的数据,例如整数、字符串、浮点数、布尔值等。甚至可以存储其他列表或其他复杂的数据结构。

由于列表的有序性、可变性和多样化的数据类型,它是一种非常常用和灵活的数据结构,常用于存储和处理一组相关的数据。列表提供了丰富的方法和操作,使得对数据的管理和处理变得更加方便和高效。

# 定义列表:

使用中括号来定义 [ ]

a = ["a", 1, True]
b = []
print(type(a), a)  # <class 'list'> ['a', 1, True]
print(type(b), b)  # <class 'list'> []

使用构造方法定义:

使用构造方法定义列表时,参数只能是可迭代的对象,构造方法会将参数中的元素构造成为列表的元素。 可以理解为将可迭代的对象强制类型转换为列表。

a = list("abc")
b = list([1, "a", True])
c = list(("x", 2, False))
print(type(a), a)  # <class 'list'> ['a', 'b', 'c']
print(type(b), b)  # <class 'list'> [1, 'a', True]
print(type(c), c)  # <class 'list'> ['x', 2, False]

列表元素的引用:

列表同字符串,元组一样,也可以使用下标形式引用列表中的元素。并且,下标不能超过列表的元素个数减1,否则会抛出下标越界错误。

a = ["a", "b", "c", "d"]
print(a[0])  # a
print(a[4])  # IndexError: list index out of range

列表元素的修改:

由于列表的可变特性,可以通过下标的方式,对列表中的元素进行修改。

a = ["a", "b", "c", "d"]
a[0] = "A"
print(a)  # ['A', 'b', 'c', 'd']

列表的切片操作:

切片同元组和字符串;

a = ["a", "b", "c", "d"]
print(a[0:2])  # ['a', 'b']
print(a[::2])  # ['a', 'c']
print(a[::-1])  # ['d', 'c', 'b', 'a']
print(a[-1:-4:-2])  # ['d', 'b']

列表在Python中具有广泛的用途,主要包括以下几个方面:

  • 存储一组相关的数据:列表是一种有序的数据结构,可以用于存储一组相关的数据,如学生的成绩、员工的信息、商品的价格等。通过将相关的数据放入列表中,可以方便地进行统一的管理和处理。
  • 数据的容器:列表提供了便捷的操作方法,可以进行遍历、搜索、插入和删除等操作。通过索引,可以访问列表中的特定元素;通过遍历,可以逐个处理列表中的元素;通过方法,可以在列表中插入新元素、删除指定元素等。
  • 算法和数据结构中的应用:列表是一种重要的数据结构,广泛应用于算法和数据结构的实现中。例如,列表可以用于实现栈(Stack)、队列(Queue)、链表(LinkedList)等数据结构,还可以用于排序算法、搜索算法等的实现。

列表操作:

# len() 方法:获取列表中的元素个数,用法len(x)

a = ["a", "b", "c", "d"]
print(len(a))  # 4

# count() 方法:统计列表中value出现的次数,用法 xx.count(value)

a = ["a", "b", "c", "d", "b"]
print(a.count("b"))  # 2

# index() 方法:在列表中查找参数value第一次出现时的下标位置,如果给定了查找范围,则只在范围内查找,如果找不到则会报错,用法: xxx.index(value, start, end)

a = ["a", "b", "c", "d", "b"]
print(a.index("b"))  # 1
print(a.index("b", 2, 5))  # 4
print(a.index("e"))  # ValueError: 'e' is not in list

# append() 方法: 在列表的最后追加一个元素,用法:xx.append(value)

a = ["a", "b", "c", "d", "b"]
a.append("e")
print(a)  # ['a', 'b', 'c', 'd', 'b', 'e']

# extend() 方法:将一个可迭代对象依次追加到列表的末尾,用法:xxx.extend(iterable)

a = ["a", "b", "c", "d", "b"]
b = "efg"
a.extend(b)
print(a)  # ['a', 'b', 'c', 'd', 'b', 'e', 'f', 'g']

# insert() 方法:向列表中指定下标位置插入一个元素,原有元素依次向后移一位,如果指定下标超过了当前元素的个数,则插入到列表的末尾,用法:xx.insert(index, value)

a = ["a", "b", "c", "d"]
a.insert(1, "A")
print(a)  # ['a', 'A', 'b', 'c', 'd']
a.insert(8, "D")
print(a)  # ['a', 'A', 'b', 'c', 'd', 'D']

# del 方法:使用del关键字+索引来删除列表中的对应元素,如果索引不存在,则会报错,用法:del x[index]

a = ["a", "b", "c", "d"]
del a[3]  # ['a', 'b', 'c']
print(a)
del a[3]  # IndexError: list assignment index out of range
print(a)  

# remove() 方法:删除列表中的指定数据,如果不存在,则会报错,用法:xx.remove(value)

a = ["a", "b", "c", "d"]
a.remove("d")
print(a)  # ['a', 'b', 'c']
a.remove("d")  # ValueError: list.remove(x): x not in list
print(a)

# pop() 方法:从列表中取出并删除指定下标位置的元素,默认取出并删除最后一个元素,如果指定的下标不存在,则会报错,用法:xx.pop(index)

a = ["a", "b", "c", "d"]
a.pop()
print(a)  # ['a', 'b', 'c']
a.pop(2)
print(a)  # ['a', 'b']
a.pop(2)  # IndexError: pop index out of range
print(a)

# clear() 方法: 清空列表,用法:xx.clear()

a = ["a", "b", "c", "d"]
a.clear()
print(a)  # []

# sort() 方法:对列表进行排序,默认进行生序排序,使用reverse关键字进行降序排序,使用key关键字来指定排序规则,用法: xx.sort(key=mm, reverse=True)

a = ["d", "b", "c", "a"]
a.sort()
print(a)  # ['a', 'b', 'c', 'd']
a.sort(reverse=True)
print(a)  # ['d', 'c', 'b', 'a']
b = ["a", "bc", "def"]
b.sort(key=len)
print(b)  # ['a', 'bc', 'def']
b.sort(key=len, reverse=True)
print(b)  # ['def', 'bc', 'a']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python中的K-means算法是一种常用的聚类算法,用于将数据集分成K个不同的群组。它的实现步骤如下: 1. 导入所需的库和数据集,例如使用scikit-learn的KMeans类和datasets模块来加载数据集。 2. 准备数据集,将其存储在变量x中。 3. 创建一个KMeans对象,指定所需的聚类中心数K。 4. 使用.fit()方法对数据进行聚类,这将根据数据集中的特征计算出最佳的聚类中心,并将每个数据点分配到相应的群组。 5. 使用.predict()方法来预测新的数据点所属的群组。 6. 打印预测值和真实值,以便进行比较。 以下是一个示例代码,演示了如何使用Python实现K-means算法并进行聚类分析: ``` from sklearn.cluster import KMeans from sklearn import datasets import numpy as np # 加载数据集 iris = datasets.load_iris() x = iris.data y = iris.target # 创建KMeans对象并进行聚类 clf = KMeans(n_clusters=3) model = clf.fit(x) # 预测值 predicted = model.predict(x) print("预测值:", predicted) # 真实值 print("真实值:", y) ``` 这段代码使用sklearn库中的KMeans类对鸢尾花数据集进行聚类,将数据分成3个不同的群组,并打印出预测值和真实值进行比较。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【机器学习】K-means算法Python实现教程](https://blog.csdn.net/mkr67n/article/details/125777929)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python k-means聚类算法 物流分配预测实战(超详细,附源码)](https://blog.csdn.net/jiebaoshayebuhui/article/details/126953494)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值