列表和原组的区别和相似点

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。

列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

加号(+)是列表连接运算符,星号(*)是重复操作。如下实例:

#!/usr/bin/python

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表

以上实例输出结果:

['abcd', 786, 2.23, 'john', 70.200000000000003]
abcd
[786, 2.23]
[2.23, 'john', 70.200000000000003]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']


 


 

Python元组

元组是另一个数据类型,类似于List(列表)。

元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。

#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')

print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表

以上实例输出结果:

('abcd', 786, 2.23, 'john', 70.200000000000003)
abcd
(786, 2.23)
(2.23, 'john', 70.200000000000003)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')

 

 

 

以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:

#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一种可能的解决方案: 1. 安装必要的Python库 ```python !pip install numpy pandas matplotlib seaborn scikit-learn haversine ``` 2. 加载数据 ```python import pandas as pd # 读取第一组坐标数据 df1 = pd.read_csv('coordinates1.csv') print(df1.head()) # 读取第二组坐标数据 df2 = pd.read_csv('coordinates2.csv') print(df2.head()) ``` 3. 数据预处理 ```python from haversine import haversine # 计算每个坐标之间的距离 def calculate_distances(coords): distances = [] for i in range(len(coords)): for j in range(i+1, len(coords)): distances.append(haversine(coords[i], coords[j])) return distances # 计算每组坐标之间的距离 distances1 = calculate_distances(list(zip(df1['latitude'], df1['longitude']))) distances2 = calculate_distances(list(zip(df2['latitude'], df2['longitude']))) # 将距离转换为DataFrame df_distances1 = pd.DataFrame({'distance': distances1}) df_distances2 = pd.DataFrame({'distance': distances2}) ``` 4. 绘制距离分布图 ```python import matplotlib.pyplot as plt import seaborn as sns # 绘制第一组坐标的距离分布图 plt.figure(figsize=(10, 6)) sns.histplot(df_distances1, x='distance', bins=50, kde=True) plt.title('Distance Distribution of Coordinates1') plt.xlabel('Distance (km)') plt.ylabel('Count') plt.show() # 绘制第二组坐标的距离分布图 plt.figure(figsize=(10, 6)) sns.histplot(df_distances2, x='distance', bins=50, kde=True) plt.title('Distance Distribution of Coordinates2') plt.xlabel('Distance (km)') plt.ylabel('Count') plt.show() ``` 5. 使用KS检验比较距离分布 ```python from scipy.stats import ks_2samp # 使用KS检验比较距离分布 ks_statistic, p_value = ks_2samp(df_distances1['distance'], df_distances2['distance']) # 输出结果 print('KS statistic:', ks_statistic) print('P-value:', p_value) ``` 如果P-value小于阈值(例如0.05),则可以拒绝原假设,即两组坐标的距离分布不同。反之,如果P-value大于阈值,则接受原假设,即两组坐标的距离分布相似
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值