python通过字典实现映射_数据开发_Python中字典和Java映射示例

本文介绍用Python和Java实现统计数组中各元素出现次数的方法。包括使用字典(dict)和HashMap来记录每个元素出现的频率,并展示不同的实现方式。

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

示例

通过代码的演化,了解历史的写法以及目前的写法,从而对目前的方式有个更好的理解

Python

def statis_col(a):

""" 统计a中元素出现的次数"""

d = dict()

for sig in a:

if sig not in d:

d[sig] = 1

else:

d[sig] += 1

print(d)

return d

def statis_col_2(a):

d = dict()

for sig in a:

d[sig] = d.get(sig, 0)+1

print(d)

return d

if __name__ == '__main__':

pass

Java

import java.util.HashMap;

import java.util.Map;

public class MapStatis {

public static void main(String[] args){

int arr[]={12,12,3,1,1,99,13};

MapStatis ma = new MapStatis();

ma.showResult3(arr);

ma.showResult2(arr);

ma.showResult(arr);

}

public static void show(Map mapRsult){

for (Map.Entry entry : mapRsult.entrySet()) {

System.out.println(entry.getKey()+": " +entry.getValue());

}

}

public void showResult3(int[] arr_dat){

System.out.println("###1####");

Map map3=new HashMap<>();

for (Integer temp : arr_dat){

map3.put(temp, map3.getOrDefault(temp,0)+1);

}

show(map3);

}

public void showResult2(int[] arr_dat){

System.out.println("##$$$$$$$$$$$$#####");

Map map2=new HashMap<>();

for (int i=0;i

map2.put(arr_dat[i], map2.getOrDefault(arr_dat[i],0)+1);

}

show(map2);

}

public void showResult(int[] arr_dat){

System.out.println("####%%%%%%###");

Map map=new HashMap<>();

for (int i=0;i

if(map.get(arr_dat[i])!=null){

map.put(arr_dat[i], map.get(arr_dat[i])+1);

}else{

map.put(arr_dat[i], 1);

}

}

show(map);

}

}

Python中的映射是指字典(dict)类型,是一种可变的、无序的键值对集合。字典中的键(key)都必须是不可变类型(例如字符串、数字、元组等),而值(value)则可以是任何类型。 Python中的映射类型操作符主要有以下几种: 1. in:用于判断某个键是否存在于字典中,返回布尔值。 2. del:用于删除字典中的某个键值对。 3. len:用于返回字典中键值对的数量。 4. keys:用于返回字典中所有键的列表。 5. values:用于返回字典中所有值的列表。 6. items:用于返回字典中所有键值对的列表,每个键值对以元组的形式表示。 7. clear:用于清空字典中的所有键值对。 8. get:用于获取字典中某个键对应的值,如果键不存在则返回默认值(如果指定了默认值)或者None。 9. setdefault:用于获取字典中某个键对应的值,如果键不存在则设置默认值并返回默认值。 下面是一些示例代码: ```python # 创建一个字典 dict1 = {'name': 'Alice', 'age': 18, 'gender': 'female'} # 判断某个键是否存在 print('name' in dict1) # True print('height' in dict1) # False # 删除某个键值对 del dict1['age'] print(dict1) # {'name': 'Alice', 'gender': 'female'} # 返回键值对数量 print(len(dict1)) # 2 # 返回所有键 print(dict1.keys()) # dict_keys(['name', 'gender']) # 返回所有值 print(dict1.values()) # dict_values(['Alice', 'female']) # 返回所有键值对 print(dict1.items()) # dict_items([('name', 'Alice'), ('gender', 'female')]) # 清空字典 dict1.clear() print(dict1) # {} # 获取某个键对应的值 dict2 = {'name': 'Bob', 'age': 20} print(dict2.get('name')) # 'Bob' print(dict2.get('height')) # None print(dict2.get('height', 'unknown')) # 'unknown' # 获取某个键对应的值,如果键不存在则设置默认值并返回默认值 print(dict2.setdefault('name', 'unknown')) # 'Bob' print(dict2.setdefault('height', 175)) # 175 print(dict2) # {'name': 'Bob', 'age': 20, 'height': 175} ``` 以上就是Python映射类型操作符的概念使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值