java 字典_Python字典 列表 等基础

字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。

比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。

为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。

由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。

程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。

在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。

列表

1)为什么要引入列表呢?

  当我们有很多很多的员工姓名要存起来的时候,就目前学到的知识,我们要定义很多个变量去分别存每个员工的姓名,但是我们这样会累死的,而且会被开除了哈哈哈,这时候我们的列表就派上用场了,可以把它们全部存到一个列表里面,相当于我们c++或者java学的数组。存储较为方便,看起来也比较美观。

  2)列表的操作

    增加,删除,修改,查询,复制,切片,合并,循环输出等。

986820cbd6505a8fd5137b2fc105f9be.gif

列表操作函数

总结:

    增加:

      insert()

      append()

删除:del()

       pop()

       remove()

    修改:list[] = ""   查询:list[index]  复制:copy()  合并:extend  反转:reverse()  排序:sort()

五、元祖

  和列表相似,但是只有计数和获取下标,对应的是count和index。

六、字典
  1) 粗略的定义相当于c++或者java的映射,key-value键值对,每个key对应一个value。  
  2) 字典的操作:              
      增加,删除,修改,查询,循环等操作。  


986820cbd6505a8fd5137b2fc105f9be.gif

字典操作函数

  总结:
    增加:当修改某个key-value时,如果该key不存在,他就会增加到字典中。dic[key] = value。
    删除:del,pop()
    修改:dic[key] = new_value,该key必须存在。
    查询:dic.get(key)--->value
    循环:for i in dic:
        print(i,dic[i])
 3)字典的常用函数:
    除了上面的一些,例如:dic.keys() 打印所有的key值。
               dic.values() 打印所有的value值。
               dic.setdefault(key,new_value) 查看这个字典里面有没有这个key,有就返回,没有就创建新的。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好,对于给定的列表中的字典进行倒排,可以使用Java中的Map数据结构来实现。具体步骤如下: 1. 创建一个空的Map对象,用于存储倒排后的结果。 ``` Map<String, List<Integer>> invertedIndex = new HashMap<>(); ``` 2. 遍历列表中的每个字典,对于每个字典,遍历它的所有键值对,将每个键值对的键作为倒排索引的关键字,将该字典列表中的下标作为该关键字对应的值,将该值添加到Map中对应的列表中。 ``` for (int i = 0; i < list.size(); i++) { Map<String, Object> dict = list.get(i); for (Map.Entry<String, Object> entry : dict.entrySet()) { String key = entry.getKey(); List<Integer> indexList = invertedIndex.getOrDefault(key, new ArrayList<>()); indexList.add(i); invertedIndex.put(key, indexList); } } ``` 3. 遍历完所有的字典后,Map中的每个键值对就代表了一个倒排索引,其中键为关键字,值为该关键字出现在列表中的所有字典的下标。 ``` for (Map.Entry<String, List<Integer>> entry : invertedIndex.entrySet()) { String key = entry.getKey(); List<Integer> indexList = entry.getValue(); System.out.println(key + ": " + indexList); } ``` 完整代码示例: ``` import java.util.*; public class InvertedIndex { public static void main(String[] args) { List<Map<String, Object>> list = new ArrayList<>(); Map<String, Object> dict1 = new HashMap<>(); dict1.put("title", "Java Programming"); dict1.put("author", "John Smith"); dict1.put("year", 2019); list.add(dict1); Map<String, Object> dict2 = new HashMap<>(); dict2.put("title", "Python Programming"); dict2.put("author", "Jane Doe"); dict2.put("year", 2020); list.add(dict2); Map<String, Object> dict3 = new HashMap<>(); dict3.put("title", "Java Programming for Beginners"); dict3.put("author", "John Smith"); dict3.put("year", 2021); list.add(dict3); Map<String, List<Integer>> invertedIndex = new HashMap<>(); for (int i = 0; i < list.size(); i++) { Map<String, Object> dict = list.get(i); for (Map.Entry<String, Object> entry : dict.entrySet()) { String key = entry.getKey(); List<Integer> indexList = invertedIndex.getOrDefault(key, new ArrayList<>()); indexList.add(i); invertedIndex.put(key, indexList); } } for (Map.Entry<String, List<Integer>> entry : invertedIndex.entrySet()) { String key = entry.getKey(); List<Integer> indexList = entry.getValue(); System.out.println(key + ": " + indexList); } } } ``` 输出结果: ``` year: [0, 1, 2] title: [0, 1, 2] author: [0, 1, 2] ``` 希望能对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值