V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hellogitooxx  ›  全部回复第 1 页 / 共 1 页
回复总数  19
@chionetw5 感谢你,就是这个意思
2021-04-22 23:25:54 +08:00
回复了 huzhikuizainali 创建的主题 Python 在本机用 Python 做数据挖掘,大家一般用什么数据库?
mysql
2021-04-22 22:17:11 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@hello2060 我找到思路了,感谢你的回答。
2021-04-22 19:42:27 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@hello2060

是需要在 if_list 前提上.append 的,return len(if_list) == 0 ? if_list : ['不存在'] 这个,i 前面 f_list=["oo","不存在"]已经有两个元素了。
2021-04-22 19:25:21 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@Wincer if_list 里面是要允许重复值的,这是前提,我这个题目主要是,当 str_="aa"有和列表中元素前面两个字符相同的,刚把当前元素添加到 if_list 中,要是没有就添加”不存在“。
2021-04-22 19:22:51 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@hello2060
```

for a_list in list_data:
if str_[-2:] == a_list[:2]:
if_list.append(a_list[-1])
else:
if_list.update("不存在")
```
没有相同的,也要返回“不存在”,但是我这个程序不相同的,返回了“不存在”多个了,我只需要返回一个”不存在“
2021-04-22 19:16:19 +08:00
回复了 hellogitooxx 创建的主题 Python Python 查找元素并记录问题,恳请给个思路。
@Wincer
else:
if_list.update("不存在")这里写错了,应该是 if_list.append("不存在")进去的。想要得到的结果就是 for a_list in list_data: 当相同的时候,要返回“不存在”,只需要返回一次就行了,但是我上面这个程序不相同的,返回了“不存在”多个了了。
2021-04-03 12:45:36 +08:00
回复了 hellogitooxx 创建的主题 Python 小白遇到个字符串数据处理,请教一下
@eason1874 感谢。
2021-04-02 18:30:09 +08:00
回复了 Twosecurity 创建的主题 推广 [信息安全] 开放几个课程 🚀
感谢分享
2021-03-21 21:50:56 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 我想问下,我还需要在哪方面进修,我对编程很感兴趣。像你回答题中,类似 defaultdict,combinations,我都没有学习到,没想到是 python 就自带的,很是惭愧。
2021-03-21 21:42:40 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 感谢你。
2021-03-21 19:33:51 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii

def detect_paired(rows):
paired_rows = list(combinations(rows.keys(), 2))
# 你把 paired 这个变量换成一个字典来存储比较结果就好了。
# 比如以行数组成的元组作为 key,而 value 则是相同的次数。
# 这样只要每次发现相同的两行,就把 value 加一,就可以得到你想要的结果了。
paired = {}
value =1
i = 2
longest_column = max(rows.values(), key=lambda row: len(row))
while paired_rows and i < len(longest_column):
for pair in paired_rows[:]:
# print(pair)
if rows[pair[0]][:i + 1] == rows[pair[1]][:i + 1]:
# 以行数组成元组:pair
#print(paired.keys())
# 你应该先判断这两行是否已经记录过了,即是否存在于
# paired 这个字典里。如果字典里已有记录,那么就更新这个记录。
# 如果没有,那么就新增一个记录到字典里去。
if pair in paired.keys():
#if pair==paired[pair]:
value += 1
paired[pair]=value # 更新

elif pair not in paired.keys():
paired.update({pair: value})

print(f"L{pair[0]}==L{pair[1]}:{rows[pair[0]][:i + 1]}")

else:
paired_rows.remove(pair)
i += 1

return paired


添加了判断行数组是否存在,
我另外换了一串字符串,如下:
AAAAAABBBBBBABAABAABBBBABAAAAABABBAABBABABAAABBABAABAABDEFABBF

为什么达不到我想要的效果的,请问问题还出在哪里呢

按理说( 1,4 ),( 2,3 )不会有这么多呢?

我遇到的问题是怎么更新对应的字典里的键的值。

恳请你指点一下
2021-03-21 12:00:11 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 太感谢你了。刚学编程不久,能够遇到你这样热心回答,向你学习。
2021-03-21 09:45:57 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 感谢你在百忙之中回复,
然后选择第一行前面的 3 个元素,去后面 5 行查找是否存在前面三个元素相同的,有相同的+1,如第一行和第二行有相同的,则+1 (绿色条),程序向下循环查找,AAB 已经后面行已经没有,然后,(第二行,前面的 3 个元素,去后面 4 行查找是否存在前面三个元素相同的,有则+1,第三行同样,以此类推,比较存在就+1,)
到第 4 行和第 6 行也有相同的,也+1,不过这个+1 不是在第一行和第二行的前提上+1,因为它们的内部元素不相等的,然后继续循环,又回到第一行,开始取前面 4 个元素(因为之前是 3 个元素,现在元素内部也自增+1,循环一次,蓝色箭头),相互比较(查找),第 4 行和第 6 行也有相同的相同元素出现+1 (黄色条),面取前面 5 个元素,又一次循环,发现没有相同元素,程序结束。

思维是,先将字符串转换成 6 行,向竖输出,然后,第一次,先取第一行前面 3 个元素,去查找后面行前面 3 个元素是否有相同的,存在则+1,循环一次过后,再取第二行前面 3 个元素,去后面 4 行查找是否存在前面三个元素相同的,有则+1,第三行同样,以此类推,像比较存在就+1 )

截图我也发你邮箱了,再次感谢你。
2021-03-20 23:59:49 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 是的,每行相同位置的字符要相同。
“从第 3 个元素开始” 是指前两个元素不用管。
2021-03-20 20:22:11 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@drinkeroftea 你可以贴张图你的代码运行后的结果么,我再详细描述一下
2021-03-20 20:20:28 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
@Pagliacii 感谢你的回复,
1.就是相同的元素字符即可,比如第一行 AAB,第二行也是 AAB,第四行 A,B,B 和第 6 行 A,B,B,
2.是每行都和其他行比较一次,存在相同就+1,
3.取前面的元素作比较(从第 3 个元素开始),每循环一次就增加一个元素进行相互比较,直到不存在相同的两行为止。

暂时还发不了图片网址,见谅。


@drinkeroftea
感谢你的热心回复,你可以看看 5 楼我的回复。
2021-03-20 15:04:54 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
首先感谢 @Pagliacii 的回答,按他的代码,已经完成了编排,
前面是我表达不清,不好意思,如下
A,A,B,B,A,A,A,C,A,A,A,A
A,A,B,C,B,A,A,A,B,C,B,E
A,B,A,A,C,A,A,A,B,B,A
A,B,B,B,A,A,A,A,B,A,A
B,A,B,D,B,A,C,A,C,B,A
A,B,B,B,B,C,B,A,C,B,B
需求:
元素已经编排好了,然后选择第一行前面的 3 个元素,和后面 5 行前面三个元素对比,有相同的+1,如第一行和第二行有相同的,则+1,行与行之间相互不断比较,到第 4 行和第 6 行也有相同的,也+1,不过这个+1 不是在第一行和第二行的前提上+1,因为它们的内部元素不相等的,然后继续循环,又回到第一行,取前面 4 个元素,相互比较,第 4 行和第 6 行也有相同的相同元素出现+1,循环,后面取前面 5 个元素,又一次循环,发现没有相同元素,程序结束。

想得到的信息:
第一和第二行,有相同的,出现一次
第四和第六行,有相同的,出现二次

恳请赐教。
2021-03-20 15:03:14 +08:00
回复了 hellogitooxx 创建的主题 Python 急急急,小白弱弱请教一个关于字符串的大问题
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2766 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.