免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1898|回复: 8
收起左侧

[软件] 按一个字段的索引,输出另一个字段的值

[复制链接]

1

主题

1190

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
143
发表于 2022-1-19 12:41 手机频道 | 显示全部楼层 |阅读模式
20铜板
a=12
b=(45,36,12)
c =(121,16,532)
由a在b里的位置,求相应位置c的值(532)
最好能用phython,在arcgis字段计算器里运行
求高手指点多谢!

324

主题

56万

铜板

1172

好友

等待验证会员

Rank: 1

积分
349368

宣传勋章爱心勋章组织勋章官方团队冰雪节勋章

发表于 2022-1-19 13:04 | 显示全部楼层

欢迎论坛的高手解答,会奖励相应的威望和铜板哦
回复

使用道具 举报

0

主题

1484

铜板

2

好友

技术员

Rank: 3Rank: 3

积分
56
发表于 2022-1-19 14:41 | 显示全部楼层
c[b.index(a)],按这个去改写

评分

参与人数 1威望 +20 铜板 +50 收起 理由
远方~ + 20 + 50 感谢回复!

查看全部评分

回复

使用道具 举报

1

主题

1190

铜板

6

好友

助理工程师

Rank: 5Rank: 5

积分
143
 楼主| 发表于 2022-1-19 14:49 手机频道 | 显示全部楼层
沧海征途 发表于 2022-1-19 14:41
c,按这个去改写

运行出差呀,这个数据是arcgis里三列数据,
回复

使用道具 举报

1

主题

470

铜板

2

好友

技术员

Rank: 3Rank: 3

积分
29
发表于 2022-1-19 15:41 | 显示全部楼层
3楼的思路就是对的,不过不会python基础语法的话可能也不知道怎么改写,简单来说,
如果括号和逗号都是英文格式,内容都是数字的话,可以直接 eval( '{}[ {}.index({}) ]'.format(!字段c!, !字段b!, !字段a!) );
括号和逗号有中文格式的话,就加个replace替换为英文格式, eval( '{}[ {}.index({}) ]'.format(!字段c!.replace('(','(').replace(')',')').replace(',',','), !字段b!.replace('(','(').replace(')',')').replace(',',','), !字段a!) );
如果内容中有中文的话,就得先用split函数拆成列表再索引, eval( '{}[ {}.index("{}") ]'.format( !字段c!.replace(' ','').replace( '(','').replace(')','').replace('(','').replace(')','').replace(',',',').split(','), !字段b!.replace(' ','').replace( '(','').replace(')','').replace('(','').replace(')','').replace(',',',').split(','), !字段a!) )。

评分

参与人数 2威望 +20 铜板 +52 收起 理由
远方~ + 20 + 50 地信网的成长离不开您的支持!
新手小白bai + 2 高手

查看全部评分

回复

使用道具 举报

0

主题

2万

铜板

1

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4862
发表于 2022-1-19 16:14 | 显示全部楼层
学习一下
回复

使用道具 举报

地信网友  发表于 2022-1-19 17:11
如果你的字段B、C的值都带括号
!c![1:-1].split(",")[(!b![1:-1].split(",").index(!a!))]
如果B、C字段值没有括号是逗号分隔数字的纯文本
!c!.split(",")[(!b!.split(",").index(!a!))]
回复

使用道具

2

主题

1万

铜板

4

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1448
发表于 2022-1-20 15:07 | 显示全部楼层
3楼写的简单易懂
回复

使用道具 举报

0

主题

205

铜板

1

好友

实习生

Rank: 1

积分
6
发表于 2022-1-21 13:39 | 显示全部楼层
最简单的,循环 b 的元素,等于a的时候拿到索引,输出c,break
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表