社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  vash_the_stampede  »  全部回复
回复总数  8
5 年前
回复了 vash_the_stampede 创建的主题 » 删除重复项的第一个实例,并将其他项保存在python的.txt文件中

你可以用 collections.defaultdict 并创建一个字典,其中包含文档中每个值的所有索引。如果有多个索引,则可以通过切片字典值并将其附加到新列表中,仅写入从第一个项之后开始的值。

from collections import defaultdict

with open('test.txt') as f:
    content = (f.read()).split()

dd = defaultdict(list)

for i, v in enumerate(content):
    dd[v].append(i)

res = []

for v in dd.values():
    if len(v) == 1:
        res.append(content[v[0]])
    else:
        for i in v[1:]:
            res.append(content[i])

with open('out.txt', 'w') as f:
    f.write('\n'.join(map(str,res)))
222
111
111
111
5 年前
回复了 vash_the_stampede 创建的主题 » 在python中处理嵌入在字典列表中的元组列表

这可以用 lambda sorted 是的。使用时 已排序 具有 兰姆达 我们先出发 key=lambda x: 是的。现在你可以想想了 x 表示列表索引,以便按 assignment_1 我们要走了 x['assignments'] 如果我们的任务是 任务1 我们知道那是 0 索引 assignments 所以在一起 key=lambda x: x['assignments'][0] 是的。现在我们也可以 sort 第二个选择,那将是我们的平局,我们将使用 x[id] 并将与我们的主要排序因子在一个元组中。我们当然应该用 reverse = True 为了得到下降的分数,但是由于我们希望我们的平局是上升的,所以我们可以在 id 使用 -(x['id'])

总的来说,这类情况如下:

lista = sorted(students, key=lambda x: (x['assignments'][0], -(x['id'])), reverse = True)

棘手的部分是为传递的赋值选择合适的赋值索引,因为您可以使用 .split('_')[1] (使用时 .split('_') 'assignment_1' 我们生成一个新列表 ['assignemnt', '1'] 在这种情况下,我们现在可以采取 [1] 索引 .split() 那就是 1 作为 int 减去1得到 0个 这是相应的索引,其余的都是从它们的索引中去掉1。

def highest_n_grades(students, assignment_name, n):
    y = int(assignment_name.split('_')[1]) - 1
    lista = sorted(students, key=lambda x: (x['assignments'][y], 'id'), reverse = True)
    return lista [:n]   

print(highest_n_grades(student_list, 'assignment_1', 3))
# [{'id': 12345, 'first_name': 'Ed', 'last_name': 'Enders', 'assignments': [('assignment_1', 4), ('assignment_2', 1), ('assignment_3', 3)]}, {'id': 12344, 'first_name': 'Didi', 'last_name': 'Dawson', 'assignments': [('assignment_1', 3), ('assignment_2', 0), ('assignment_3', 2)]}, {'id': 12343, 'first_name': 'Carl', 'last_name': 'Cape', 'assignments': [('assignment_1', 2), ('assignment_2', 4), ('assignment_3', 1)]}]

使用伪分数演示平局破发案例:

print(highest_n_grades(student_list, 'assignment_1', 3))
# [{'id': 12344, 'first_name': 'Didi', 'last_name': 'Dawson', 'assignments': [('assignment_1', 4), ('assignment_2', 0), ('assignment_3', 2)]}, {'id': 12345, 'first_name': 'Ed', 'last_name': 'Enders', 'assignments': [('assignment_1', 4), ('assignment_2', 1), ('assignment_3', 3)]}, {'id': 12342, 'first_name': 'Boris', 'last_name': 'Bank', 'assignments': [('assignment_1', 2), ('assignment_2', 3), ('assignment_3', 0)]}]

进一步阅读

.split()

https://docs.python.org/3/library/stdtypes.html

关于使用 已排序

https://docs.python.org/3/library/functions.html https://wiki.python.org/moin/HowTo/Sorting

5 年前
回复了 vash_the_stampede 创建的主题 » 在python中删除多维数组中的重复值

使用 set 若要消除子列表中的重复项,请检查子列表项是否存在于 res 如果不将这些值附加到 tmp 列出,然后将该列表附加到 物件

res = []
lst = [set(i) for i in lst]

for i in lst:
    tmp = []
    for j in i:
        if not any(j in i for i in res):
            tmp.append(j)
    if tmp:
        res.append(sorted(tmp))

print(res)
# [[125.25, 128, 129], [124.25, 127, 130, 131], [124, 125, 126]]
5 年前
回复了 vash_the_stampede 创建的主题 » 在python中使用函数递增给定的数字

您可以设置这样的条件:如果骰子掷骰子使当前值超过100,它将被忽略,直到骰子掷骰子产生等于100的值。

from random import randint

current = 0
while current != 100:
    r = randint(1, 6)
    if current + r > 100:
        continue
    else:
        current += r
    print(current)
4
8
...
89
93
96
98
99
100
5 年前
回复了 vash_the_stampede 创建的主题 » 如何使用包含节点和边的python dict构建g networkx?

因此,问题似乎是有些元组没有正确地组织,无法从列表到字典进行一致的转换,您可以这样做:测试这些元组的索引

ls = [('a', 1), (2, 'b'), (3, 'c'), ('a', 2), ('b', 3)]
links = []
for i in ls:
    try:
        if i[0].isalpha():
            links.append({'source': i[1], 'target': i[0]})
    except AttributeError:
        links.append({'source': i[0], 'target': i[1]})

print(links)
# [{'source': 1, 'target': 'a'}, {'source': 2, 'target': 'b'}, {'source': 3, 'target': 'c'}, {'source': 2, 'target': 'a'}, {'source': 3, 'target': 'b'}]

我们要测试一下 i[0] 如果它的字母至少有一个字符,如果它是,我们将它附加到目标和 i[1] 到来源。另一方面,如果它恰好是 int 将引发一个错误,我们可以使用 try/except 捕捉那个错误,这告诉我们,现在我们的int在 我[ 0 ] 所以我们可以用 我[ 0 ] 作为来源和 我[ 1 ] 作为目标。

5 年前
回复了 vash_the_stampede 创建的主题 » 从类oop python的所有实例创建字典
class Country(object):
    """ Modeling a country immigration. """

    def __init__(name, immigrants, population, disease_numbers):

        self.name = name
        self.immigrants = immigrants
        self.infected = population
        self.disease_numbers = disease_numbers

    def update_pop(self, year, rate):
        self.infected = self.infected * year * rate

向类中添加函数是否有效?

5 年前
回复了 vash_the_stampede 创建的主题 » 如何在python中根据字典键获取唯一的数据

这将为您生成独特的词典,但不清楚 id 你想从每一个都没有提到你是如何决定第二选择的。

d2 = {i['series']: i for i in d}
d3 = list(d2.values())
[{'id': 590, 'series': 17, 'job_id': 19103}, {'id': 598, 'series': 18,
'job_id': 19193}, {'id': 598, 'series': 19, 'job_id': 19193}, {'id':
585, 'series': 20, 'job_id': 19103}]
5 年前
回复了 vash_the_stampede 创建的主题 » python程序不工作..主要部分显示错误
class point: 
    def __init__(self,z,d): 
        self.x = z 
        self.y = d 
    def display(self,z,d): 
        self.x = z #not self.z
        self.y = d #not self.d
    def setX(self, z): 
        self.x = z 
    def setY(self, d): 
        self.y = d 
    def getX(self): 
       return self.x 
    def getY(self): 
       return self.y 
    def show(self): 
       print(self.x) 
       print(self.y) 

首先修复此问题,您正在更新 display 使用两个新的变量,所以我们只是将这些变量 self.z / self.d

p1 = point(1,2)
print("Point P1:")
p1.show()

使用所需的值创建实例 __ini__(self, z, d) 需要一个 z and d 价值

print("Updated value:")
p1.display(5, 6)
p1.setX(9)
p1.setY(4)
p1.show()

如果 p1.display 正在将值更新为 5,6 那为什么还要用 setX / setY 你赚了很多钱 z=5, d=6 然后 z=9 d=4

然后重复这些小错误 p2