乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 44|回复: 10

[编程交流] 将大量选定整数放入

[复制链接]

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 16:33:56 | 显示全部楼层 |阅读模式
你好
 
假设我们在dwg中有一组整数作为文本。
从给定的整数开始,我们如何将它们按1(+1)的升序排列?
让我举个例子来说明这一点。假设我们有文本1 2 5 5 5 8 9 11 15,给定的起始整数是6。我们一起选择它们,选择集中的范围是随机的。让我们说5 2 8 15 1 5 5 11 9 11。
现在,我们想把它们按升序排列,从数字6开始,用新的替换“旧”范围。最后,我们必须做到:
6 7 8 8 8 9 10 11 11 12.
即6(代替1)、7(代替2)、8(5)、8(5)、8(5)、9(、10(9)、11(11)、11(11)、12(15)。我希望这是清楚的。
我们如何有效地做到这一点?
 
提前感谢您,
科斯塔斯
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 16:40:44 | 显示全部楼层
9(, = 9 ( 8 )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 16:49:05 | 显示全部楼层
考虑以下代码:
  1. (defun renumberlist ( num lst )
  2.    (setq lst (vl-sort lst '(lambda ( a b ) (< (atoi a) (atoi b))))
  3.          num (1- num)
  4.    )
  5.    (mapcar '(lambda ( a b ) (if (= a b) (itoa num) (itoa (setq num (1+ num))))) (cons nil lst) lst)
  6. )

例子:
  1. _$ (renumberlist 6 '("5" "2" "8" "15" "1" "5" "5" "11" "9" "11"))
  2. ("6" "7" "8" "8" "8" "9" "10" "11" "11" "12")
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:52:09 | 显示全部楼层
令人印象深刻的是,你理解人们任务/问题的速度有多快。
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 16:59:18 | 显示全部楼层
谢谢李!我将尝试将您的代码导入我的例程。如果我做不到,我会回到你身边。(这是很有可能的,因为你的编码比我的要高得多)。谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:09:07 | 显示全部楼层
 
谢谢
 
 
不客气,佐。我的代码演示了一种可能的对一组文本值进行排序和重新编号的方法,但是,假设您希望修改文本内容,那么在排序和重新编号过程中,您需要保留文本对象的实体名称-如果您陷入困境,我很乐意对此进行演示。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:12:49 | 显示全部楼层
为了好玩,这里有一个递归函数,它接受排序列表以生成相同的结果:
  1. (defun renum ( num lst )
  2.    (if lst (cons (itoa num) (renum (if (= (car lst) (cadr lst)) num (1+ num)) (cdr lst))))
  3. )

例子:
  1. _$ (renum 6 (vl-sort '("5" "2" "8" "15" "1" "5" "5" "11" "9" "11") '(lambda ( a b ) (< (atoi a) (atoi b)))))
  2. ("6" "7" "8" "8" "8" "9" "10" "11" "11" "12")
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:17:22 | 显示全部楼层
这是正确的!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:25:06 | 显示全部楼层
好吧,我忍不住
 
[code](defunc:renum(/a b i l n s x y z)(initget4)(setqn(1-getint[color=栗色]”\n指定起始数字:“)(1))(if[ssget“:l”'((0.“TEXT”)(1.“~*[~0-9]*”))(prognrepeatsetqi(sslengths))(setqx(entgetssnames(setqi(1-i))))a(consassoc-1 x)a)b(consatoicdrassoc1 x)))(setqi(vl-sort-ib'
回复

使用道具 举报

3

主题

15

帖子

12

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 17:31:29 | 显示全部楼层
&  & . 李,当我第一次读到你的留言时,我发自内心地笑了,然后。。。哇!我说不出话来。。。!你真是难以置信!你知道,我写的代码行比你多出一倍,我甚至不在中间!我能说什么。。。谢谢你,伙计!!你知道,令人印象深刻的不仅仅是你解决了问题,还有你解决问题的方式(当然还有速度)。再次感谢!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 15:49 , Processed in 2.432906 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表