set list map 的使用场景
时间: 2023-09-24 07:11:53 浏览: 90
set、list、map 都是常用的数据结构,它们在不同的场景下有不同的使用方式。
set 是一个不允许重复元素的集合,适合用来进行去重操作,例如统计某个字符串中不同字符的个数,或者求两个数组的交集、并集等。
list 是一个可变长度的有序列表,适合用来存储一组元素,例如用来存储日志信息、任务列表等。
map 是一个键值对的集合,可以通过键快速访问到对应的值,适合用来存储需要按照某个关键字进行索引的数据,例如存储学生的成绩、统计单词出现的频率等。
需要根据具体的需求来选择使用哪种数据结构,或者在不同的数据结构之间进行转换。
相关问题
set list map 的使用场景 代码实例
下面是一些使用场景及其对应的代码实例:
### Set
场景:统计字符串中不同字符的个数。
```python
s = "hello world"
unique_chars = set(s)
print(len(unique_chars)) # 输出 8
```
### List
场景:存储一组日志信息,按照时间顺序输出。
```python
logs = ["2021-01-01 12:00:00 INFO: Message 1",
"2021-01-01 13:00:00 ERROR: Message 2",
"2021-01-01 14:00:00 WARNING: Message 3"]
logs.sort() # 按照时间排序
for log in logs:
print(log)
```
### Map
场景:统计一组单词出现的频率。
```python
words = ["hello", "world", "hello", "python", "world"]
freq = {}
for word in words:
if word not in freq:
freq[word] = 0
freq[word] += 1
print(freq) # 输出 {'hello': 2, 'world': 2, 'python': 1}
```
set list map 的使用场景 代码示例
下面是一些使用场景及其对应的代码示例:
### Set
场景:统计字符串中不同字符的个数。
```java
String s = "hello world";
Set<Character> uniqueChars = new HashSet<>();
for (char c : s.toCharArray()) {
uniqueChars.add(c);
}
System.out.println(uniqueChars.size()); // 输出 8
```
### List
场景:存储一组日志信息,按照时间顺序输出。
```java
List<String> logs = new ArrayList<>();
logs.add("2021-01-01 12:00:00 INFO: Message 1");
logs.add("2021-01-01 13:00:00 ERROR: Message 2");
logs.add("2021-01-01 14:00:00 WARNING: Message 3");
Collections.sort(logs); // 按照时间排序
for (String log : logs) {
System.out.println(log);
}
```
### Map
场景:统计一组单词出现的频率。
```java
String[] words = {"hello", "world", "hello", "java", "world"};
Map<String, Integer> freq = new HashMap<>();
for (String word : words) {
if (!freq.containsKey(word)) {
freq.put(word, 0);
}
freq.put(word, freq.get(word) + 1);
}
System.out.println(freq); // 输出 {hello=2, world=2, java=1}
```
阅读全文