{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,5]],"date-time":"2025-12-05T12:30:02Z","timestamp":1764937802286,"version":"3.37.3"},"reference-count":82,"publisher":"Institute of Electrical and Electronics Engineers (IEEE)","issue":"11","license":[{"start":{"date-parts":[[2024,11,1]],"date-time":"2024-11-01T00:00:00Z","timestamp":1730419200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/ieeexplore.ieee.org\/Xplorehelp\/downloads\/license-information\/IEEE.html"},{"start":{"date-parts":[[2024,11,1]],"date-time":"2024-11-01T00:00:00Z","timestamp":1730419200000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-029"},{"start":{"date-parts":[[2024,11,1]],"date-time":"2024-11-01T00:00:00Z","timestamp":1730419200000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-037"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IIEEE Trans. Software Eng."],"published-print":{"date-parts":[[2024,11]]},"DOI":"10.1109\/tse.2024.3420886","type":"journal-article","created":{"date-parts":[[2024,10,9]],"date-time":"2024-10-09T17:49:04Z","timestamp":1728496144000},"page":"2827-2848","source":"Crossref","is-referenced-by-count":3,"title":["Automated Refactoring of Non-Idiomatic Python Code With Pythonic Idioms"],"prefix":"10.1109","volume":"50","author":[{"ORCID":"https:\/\/orcid.org\/0009-0007-8877-4762","authenticated-orcid":false,"given":"Zejun","family":"Zhang","sequence":"first","affiliation":[{"name":"Australian National University, Canberra, ACT, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7663-1421","authenticated-orcid":false,"given":"Zhenchang","family":"Xing","sequence":"additional","affiliation":[{"name":"Australian National University, Canberra, ACT, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3637-4939","authenticated-orcid":false,"given":"Dehai","family":"Zhao","sequence":"additional","affiliation":[{"name":"CSIRO&#x2019;s Data61, Eveleigh, NSW, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2273-1862","authenticated-orcid":false,"given":"Xiwei","family":"Xu","sequence":"additional","affiliation":[{"name":"CSIRO&#x2019;s Data61, Eveleigh, NSW, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5839-3765","authenticated-orcid":false,"given":"Liming","family":"Zhu","sequence":"additional","affiliation":[{"name":"CSIRO&#x2019;s Data61, Eveleigh, NSW, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9466-1672","authenticated-orcid":false,"given":"Qinghua","family":"Lu","sequence":"additional","affiliation":[{"name":"CSIRO&#x2019;s Data61, Eveleigh, NSW, Australia"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"263","reference":[{"volume-title":"Effective Python: 90 Specific Ways to Write Better Python\/Brett Slatkin","year":"2020","author":"Slatkin","key":"ref1"},{"key":"ref2","doi-asserted-by":"publisher","DOI":"10.1145\/3276954.3276960"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1145\/3486608.3486909"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3549143"},{"key":"ref5","article-title":"Python enhancement proposals"},{"key":"ref6","doi-asserted-by":"publisher","DOI":"10.1109\/icse48619.2023.00130"},{"volume-title":"Python Cookbook","year":"2013","author":"Beazley","key":"ref7"},{"volume-title":"Python Tricks: A Buffet of Awesome Python Features","year":"2017","author":"Bader","key":"ref8"},{"volume-title":"Writing Idiomatic Python 3.3","year":"2013","author":"Knupp","key":"ref9"},{"key":"ref10","article-title":"Anti-patterns in python programming"},{"volume-title":"The Hitchhiker\u2019s Guide to Python: Best Practices for Development","year":"2016","author":"Reitz","key":"ref11"},{"volume-title":"Effective Python: 90 Specific Ways to Write Better Python","year":"2019","author":"Slatkin","key":"ref12"},{"key":"ref13","first-page":"1","article-title":"From Python to pythonic: Searching for Python idioms in GitHub","volume-title":"Proc. Seminar Ser. Adv. Techn. Tools Softw. Evolution","author":"Merchante","year":"2017"},{"key":"ref14","doi-asserted-by":"publisher","DOI":"10.1109\/icse-companion58688.2023.00034"},{"key":"ref15","article-title":"Pylint"},{"key":"ref16","doi-asserted-by":"publisher","DOI":"10.1109\/icsme46990.2020.00098"},{"year":"GitHub","key":"ref17","article-title":"The Little Book of Python Anti-Patterns"},{"volume-title":"Refactoring: Improving the Design of Existing Code","year":"2018","author":"Fowler","key":"ref18"},{"key":"ref19","article-title":"Replication package"},{"issue":"5","key":"ref20","first-page":"360","article-title":"Understanding interobserver agreement: the kappa statistic","volume":"37","author":"Viera","year":"2005","journal-title":"Family Med."},{"key":"ref21","article-title":"Create a dictionary with comprehension"},{"key":"ref22","article-title":"What do double star\/asterisk and star\/asterisk mean in a function call?"},{"key":"ref23","article-title":"Simplify chained comparison"},{"key":"ref24","article-title":"Else clause on Python while statement"},{"key":"ref25","article-title":"Is it possible to use else in a list comprehension"},{"key":"ref26","article-title":"Top programming languages 2023"},{"volume-title":"A Python Book: Beginning Python, Advanced Python, and Python Exercises","year":"2009","author":"Kuhlman","key":"ref27"},{"article-title":"The Java programming language","year":"2005","author":"Gosling","key":"ref28"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510225"},{"key":"ref30","article-title":"Comparison of C sharp and Java"},{"key":"ref31","article-title":"C sharp and Java: Comparing programming languages"},{"key":"ref32","article-title":"Python abstract grammar"},{"key":"ref33","article-title":"Pep 202-list comprehension"},{"key":"ref34","article-title":"Pep 274-dict comprehension"},{"key":"ref35","article-title":"Pep 448-additional unpacking generalizations"},{"key":"ref36","article-title":"With statement interpretation"},{"key":"ref37","article-title":"F-strings interpretation"},{"key":"ref38","article-title":"Truth value test on python documentation"},{"key":"ref39","article-title":"Python chain comparison"},{"key":"ref40","article-title":"The with statement"},{"key":"ref41","article-title":"Python doc: With statement"},{"key":"ref42","article-title":"What is the python with statement designed for?"},{"key":"ref43","article-title":"Python doc: Assign statement"},{"key":"ref44","article-title":"Chain assign statement on stackoverflow"},{"key":"ref45","article-title":"Formatted string literals (f-strings) in python documentation"},{"key":"ref46","article-title":"Formatted string literals"},{"key":"ref47","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180206"},{"key":"ref48","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00091"},{"key":"ref49","doi-asserted-by":"publisher","DOI":"10.1109\/MSR.2017.14"},{"year":"2023","key":"ref50","article-title":"GPT-4 technical report"},{"article-title":"Language models can teach themselves to program better","year":"2022","author":"Haluptzok","key":"ref51"},{"key":"ref52","doi-asserted-by":"publisher","DOI":"10.1145\/3501385.3543957"},{"article-title":"A survey on large language models for code generation","year":"2024","author":"Jiang","key":"ref53"},{"article-title":"Evaluating large language models trained on code","year":"2021","author":"Chen","key":"ref54"},{"key":"ref55","first-page":"21558","article-title":"Is your code generated by ChatGPT really correct? Rigorous evaluation of large language models for code generation","volume-title":"Proc. Adv. Neural Inf. Process. Syst.","volume":"36","author":"Liu","year":"2024"},{"key":"ref56","doi-asserted-by":"publisher","DOI":"10.1145\/3660773"},{"key":"ref57","doi-asserted-by":"publisher","DOI":"10.1109\/TIFS.2024.3374558"},{"key":"ref58","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00128"},{"key":"ref59","doi-asserted-by":"publisher","DOI":"10.1145\/512950.512973"},{"key":"ref60","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4612-4380-9_16"},{"key":"ref61","doi-asserted-by":"publisher","DOI":"10.2307\/3001968"},{"key":"ref62","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468553"},{"key":"ref63","doi-asserted-by":"publisher","DOI":"10.1145\/3395363.3397354"},{"key":"ref64","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2020.3016006"},{"key":"ref65","doi-asserted-by":"publisher","DOI":"10.1109\/IWESEP49350.2019.00016"},{"issue":"1","key":"ref66","first-page":"1","article-title":"Python programming language","volume":"41","author":"Rossum","year":"2007","journal-title":"USENIX Annu. Tech. Conf."},{"key":"ref67","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2006.48"},{"key":"ref68","doi-asserted-by":"publisher","DOI":"10.1007\/11785477_24"},{"key":"ref69","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2005.28"},{"key":"ref70","doi-asserted-by":"publisher","DOI":"10.1145\/1882291.1882353"},{"key":"ref71","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_23"},{"key":"ref72","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2006.41"},{"key":"ref73","doi-asserted-by":"publisher","DOI":"10.1145\/354222.353183"},{"key":"ref74","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2010.5609577"},{"key":"ref75","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510225"},{"key":"ref76","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2013.6606699"},{"key":"ref77","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660228"},{"key":"ref78","doi-asserted-by":"publisher","DOI":"10.1145\/2932631"},{"key":"ref79","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2017.14"},{"article-title":"Kayak: Safe semantic refactoring to Java streams","year":"2017","author":"David","key":"ref80"},{"key":"ref81","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2019.00082"},{"key":"ref82","doi-asserted-by":"publisher","DOI":"10.1145\/3494885.3494910"}],"container-title":["IEEE Transactions on Software Engineering"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx8\/32\/10752626\/10711885.pdf?arnumber=10711885","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,11,27]],"date-time":"2024-11-27T00:54:18Z","timestamp":1732668858000},"score":1,"resource":{"primary":{"URL":"https:\/\/ieeexplore.ieee.org\/document\/10711885\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,11]]},"references-count":82,"journal-issue":{"issue":"11"},"URL":"https:\/\/doi.org\/10.1109\/tse.2024.3420886","relation":{},"ISSN":["0098-5589","1939-3520","2326-3881"],"issn-type":[{"type":"print","value":"0098-5589"},{"type":"electronic","value":"1939-3520"},{"type":"electronic","value":"2326-3881"}],"subject":[],"published":{"date-parts":[[2024,11]]}}}