首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >列表/序列中的F#字典生成器

列表/序列中的F#字典生成器
EN

Stack Overflow用户
提问于 2017-10-09 09:27:04
回答 2查看 1.4K关注 0票数 3

F#中是否有字典的构造函数(它接受一个序列/列表作为输入,并输出一个字典)?我已经写了下面的代码来做我想做的事情,但我只是好奇它可能已经实现了(所以我不需要自己实现它)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let DictionaryBuilder (keyFunc:'a->'b) (valueFunc:'a->'c) aList =
    let dict = new Dictionary<'b,'c>()
    aList 
    |> Seq.iter (fun a -> dict.Add(keyFunc a, valueFunc a ))
    dict    // return

我知道在C#中,您可以使用.ToDictionary (使用System.Linq)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// using System.Collections.Generic;
// using System.Linq;
List<string> example = new List<string> {"a","b","c"};
Dictionary<string,string> output = example.ToDictionary(x => x+"Key", x => x+"Value");
// Output: {"aKey": "aValue", "bKey": "bValue", "cKey": "cValue"}

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2017-10-09 09:55:16

dict函数的签名如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dict : seq<'Key * 'Value> -> IDictionary<'Key,'Value> 

所以它接受一个键值序列作为输入。这里的关键是给它一个键值序列。在您的例子中,您可以使用map而不是iter。代码行将是相似的,但这是一种更实用的方式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
aList 
|> Seq.map (fun a -> keyFunc a, valueFunc a )
|> dict

编辑

正如TheQuickBrownFox在评论中指出的那样,dict函数生成一个只读字典。

票数 3
EN

Stack Overflow用户

发布于 2017-10-09 10:11:02

我建议你只使用LINQ:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
open System.Linq
[1; 2; 3].ToDictionary(id, (*) 2)

要么直接使用它,要么在你的助手函数中使用它,如果你更喜欢使用函数而不是扩展方法的话。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module Seq =
    open System.Linq
    let toDictionary (f:'s -> 'k) (g:'s -> 'v) (xs:_ seq) = xs.ToDictionary(f, g)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46643061

复制
相关文章
python中列表排序,字典排序,列表中的字典排序
key= lambda dict1:dict1[0] #dict1[0]表示按键,dict1[1]表示按值。
用户8346838
2021/03/10
9.1K0
Python中将字典转换为有序列表、无序列表的方法
说明:列表不可以转换为字典 1.转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()
用户1214487
2018/04/13
3.5K0
Python中将字典转换为有序列表、无序列表的方法
python中序列的排序,包括字典排序、列表排序、升序、降序、逆序
我们知道python中的内建序列包括字典、列表、元组、字符串等,序列是python中最基本的数据结构。
刘金玉编程
2019/07/27
8.4K0
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
2710
Python - 从字典列表中删除字典
Python - 删除列表中的重复字典
Python 是一个非常广泛使用的平台,用于 Web 开发、数据科学、机器学习以及自动化执行不同的过程。我们可以将数据存储在python中,以不同的数据类型,例如列表,字典,数据集。python字典中的数据和信息可以根据我们的选择进行编辑和更改
很酷的站长
2023/08/11
3711
Python - 删除列表中的重复字典
Python中的列表、元祖、字典的区别
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的eg:aList=[123,'abc',4.56,['inner','list'],7-9j] 1.list(str):将str转换成list类型,str可以使字符串也可以是元组类型2.aList.append('test'):追加元素到列表中去3.del aList[1]:删除列表中下标为1的元素del aList:删除整个列表4.cmp(list1,list2):比较两个列表的大小5.len(
py3study
2020/01/09
2.8K0
python中函数的序列传参,列表拆解传参、字典拆解传参
其实在使用列表传参的时候比较简单,只需要将实际的列表作为参数传入到调用的函数中的时候,在列表变量前加上一个星号*即可把某个列表拆分成多个参数传入到自定义函数中。如果调用的时候不加*那么多把列表看成一个整体传入。
刘金玉编程
2019/07/30
10.9K0
列表、字典、集合中筛选数据
传统迭代法 data = [1,5,-3,-2,8,0,9] res = [] for x in data: if x >=0: res.append(x) print(res) python中更好的解决方案 列表 filter函数filter(lambda x:x>=0,data) from random import randint data = [randint(-10,10) for x in range(10)] a = filter(lambda x:x>=0,d
听城
2018/04/27
1.7K0
python3-列表中存储字典
# Auther: Aaron Fan #示例1: #定义几个字典 alien_0 = {"color":"green", "points":5} alien_1 = {"color":"yellow", "points":10} alien_2 = {"color":"red", "points":15} #把字典存入到列表aliens中 aliens = [alien_0, alien_1, alien_2] #遍历这个列表 for alien in aliens:    print(alien
py3study
2020/01/06
1.4K0
python3-字典中存储列表
# Auther: Aaron Fan #示例1: #存储所点披萨的信息 pizza = {    '外皮':'厚的',    '配料列表':['香菇', '奶酪'], } #概述所点的比萨 print('您点了一道"%s-外皮"的比萨信息: ' % pizza['外皮']) for 配料 in pizza['配料列表']:    print("\t%s" % 配料) #示例2: 最喜欢的语言 = {    '张三':['python','ruby'],    '李四':['c'],    
py3study
2020/01/07
1.8K0
python对列表中的字典按[key]时间排序
在翻看之前的一些面试题,发现其中有一个问题就是对列表中的字典按照某个key进行排序,题目是这样的:
the5fire
2019/02/28
5.7K0
Python中字典序列化操作
JSON是一种轻量级的数据交换格式,各种语言都有良好的支持。字典是Python的一种数据结构。可以看成关联数组。
技术小黑屋
2018/09/04
1.2K0
python中星号的意义(**字典,*列表或元组)
传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:*、** 。 调用函数时使用* ,** test(*args)中 * 的作用:其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。 test(**kwargs)中** 的作用:则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {
用户1214487
2018/01/24
3.7K0
Python列表dict中相同key的字典相加
总结为: 1.去重id 2.通过去重id生成count值为空的dict 3.先循环目标数据,再循环去重后的dict 通过if判断,相同则相加,不同则跳过,这样就达到了dict相加的目的 # 怎么把列表中相同key的字典相加,也就是id的值加id的值,doc_count的值加doc_count的值 # 目标列表 l=[{'id': 5, 'doc_count': 129}, {'id': 1, 'doc_count': 3}, {'id': 1, 'doc_count': 64}] #统计ID
kirin
2021/03/12
4.8K0
Python中字典和列表的相互嵌套问题
在学习过程中遇到了很多小麻烦,所以将字典列表的循环嵌套问题,进行了个浅浅的总结分类。
润森
2022/08/18
6K0
html如何设置有序列表的列表项,HTML的有序列表
针对HTML的有序列表,由于平常使用的不是很多,刚开始使用的时候也是有遇到一些坑,有几个小问题:
全栈程序员站长
2022/07/02
3.2K0
html如何设置有序列表的列表项,HTML的有序列表
0428(字典,列表,循环)
该字典应包含键first_name 、last_name 、age 和city 。通过循环录入3个学生信息,存储到列表中, 并使用循环完成每个人具体信息的打印
py3study
2020/01/16
1.6K0
列表,元祖,字典小记
1,建立列表,列表的元素可以包含任何数数据类型,可以是数字,字符串,列表,元组,字典,集合和布尔值
py3study
2020/01/19
7630
列表,元祖,字典小记
python列表、元组、字典
列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。列表常用方括号表示,即:[],元素用逗号隔开。
py3study
2020/01/15
1.2K0
html 有序列表、无序列表、自定义列表
HTML有一个特殊元素,用于创建ordered lists(有序列表), 或数字编号列表。 有序列表以<ol>元素开始,并包含一个或多个<li>元素。 例如:
Devops海洋的渔夫
2019/05/31
4.1K0

相似问题

F#中的列表序列?

52

列表列表中的排序列表( F# )

411

字典列表与字典序列

20

字典中的排序列表

23

F#序列、列表和数组

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文