我正在尝试自学C#,并从各种来源听说函数get和setpixel可能非常慢.有哪些替代方案,性能改进真的那么重要吗?提前致谢!
我的一大块代码供参考:
public static Bitmap Paint(Bitmap _b, Color f)
{
Bitmap b = new Bitmap(_b);
for (int x = 0; x < b.Width; x++)
{
for (int y = 0; y < b.Height; y++)
{
Color c = b.GetPixel(x, y);
b.SetPixel(x, y, Color.FromArgb(c.A, f.R, f.G, f.B));
}
}
return b;
}
Run Code Online (Sandbox Code Playgroud) 我目前正忙着使用Spring Boot REST API项目进行教学.我有一个相当大的表,其中22列被加载到MySQL数据库中,我试图让用户能够按多列过滤结果(假设这个例子的目的是6).
我目前正在扩展一个Repository并初始化了一些方法,例如findByParam1和findByParam2以及findByParam1OrderByParam2Desc等,并且已经验证它们是按预期工作的.我向你们提出的问题是最好的方法,允许用户能够利用所有6个可选的RequestParams,而无需编写大量的条件/存储库方法变体.例如,我想让用户能够点击url home/get-data /获取所有结果,home/get-data?param1 = xx根据param1进行过滤,可能还有home/get-data?param1 = xx¶m2 = yy ...¶m6 = zz来过滤所有可选参数.
作为参考,这是我的控制器的相关块(粗略地).
@RequestMapping(value = "/get-data", method = RequestMethod.GET)
public List<SomeEntity> getData(@RequestParam Map<String, String> params) {
String p1 = params.get("param1");
if(p1 != null) {
return this.someRepository.findByParam1(p1);
}
return this.someRepository.findAll();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我的问题是我正在进行的这种方式意味着我基本上需要n!我的存储库中用于支持此功能的方法数量,n等于我要过滤的字段/列数量.有没有更好的方法来处理这个问题,也许我正在过滤存储库'就地'所以我可以简单地过滤'就地',因为我检查地图以查看用户确实填充了哪些过滤器?
编辑:所以我现在正在实施一个'hacky'解决方案,可能与J. West的评论有关.我假设用户将在请求URL中指定所有n个参数,如果它们没有(例如,它们指定p1-p4但不指定p5和p6),我生成的SQL恰好匹配LIKE'%'的语句非包含的参数.它看起来像......
@Query("select u from User u where u.p1 = :p1 and u.p2 = :p2 ... and u.p6 = :p6")
List<User> findWithComplicatedQueryAndSuch;
Run Code Online (Sandbox Code Playgroud)
在Controller中,我会检测地图中p5和p6是否为空,如果是,则只需将它们更改为字符串'%'即可.我确信有更精确和直观的方法来做到这一点,虽然我还没有找到任何类型的东西.
对不起,如果标题令人困惑.我正在尝试编写一个python函数,它接受一串数字(数字)作为输入(例如:"123456789123").该函数还应该接受一个int n,然后应该返回不包含n的数字字符串的最大段.例如,如果我的数字字符串是1211211121而我的n是2,那么我的函数应该返回"111",因为它是字符串中没有遇到2的最长段.
Python是我的第一个"脚本"语言,我仍在学习如何成功地整合该语言所具有的内置功能.我已经为上述问题编写了一个解决方案,包括将数字串拆分成一个单独的数字数组,然后遍历每个数字,找到没有n的数字段.然后我比较这些段找到最长的.然而,这门课程的助教告诉我们,有一种更加"pythonic"的方法可以解决这个问题,而且我的当前功能在工作时可能会明显缩短.
我很难过,有没有人有更多的"pythonic"解决方案可以帮助我?提前致谢!
PS:不确定它是否与python解决方案相关,但是我应该提一下,在某些测试用例中,数字串可能会很长(在IIRC时约为1000 +).
这是课堂作业的一个组成部分,因此如果我无法按照需要深入探讨,我深表歉意。
总而言之,我需要编写一个 python 函数,对所有相同的文件进行分组(即内容相同但文件名不同的文件)。对它们进行分组的目的是最终创建一个 {string: list} 类型的字典,其中列表是相同文件的组,而键(字符串)只是按字母顺序排序时组中的第一个条目。我们得到了一个文件目录。
到目前为止,我有一个使用 glob 迭代每个文件的程序,并且我还使用 filecmp.cmp(file1,file2) 来查找相同的文件。我正在努力解决的是成功比较最多 1000 个文件所需的逻辑。我确信有一种更 Pythonic 的方法来完成此任务,而不是比较 file1 与 file2、file1 与 file3 等。
总之,我知道如何迭代文件列表,并且一旦拥有相同文件组,我知道如何创建字典......我只是对如何有效获取文件组有点迷失。
示例实现 有 7 个文件:A、AA、AAA、B、BB、C、D。文件 A、AA 和 AAA 相同,B 和 BB 相同,而 C 和 D 唯一。我最终的字典应该是:
{'A':[A,AA,AAA],'B':[B,BB],'C':[C],'D':[D]}
在此先感谢您的时间!
python ×2
python-3.x ×2
arrays ×1
c# ×1
dictionary ×1
drawing ×1
file-io ×1
gdi+ ×1
getpixel ×1
java ×1
mysql ×1
python-2.7 ×1
rest ×1
spring-boot ×1
string ×1