<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Find Duplicates and increment in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674684#M52186</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm just learning python, but I think you might try something like this.. you'll probably have to fix syntax, but it's your list that may be the problem you are having... it won't cut it because you are incrementing regardless of what the "value" is so your results probably look more like this than what you want... &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;c==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a==&amp;gt;4&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try a matrix instead of a one D list.&amp;nbsp; where you are storing [['a',1], ['b',1], ['c',1]] and incrementing the second value if it is found (to save the value) and then setting the field in that row to that value... - this is just air code so you'll have to test it out&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy

rows = arcpy.UpdateCursor("Filename")
mylistarray = []


found = False
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.getValue("ID")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for x in mylistarray:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x[0] == value:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; found = True
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x[1] +=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = x[1]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not found:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mylistarray.append([value,1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; found = False
&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 04:27:02 GMT</pubDate>
    <dc:creator>TerrySilveus</dc:creator>
    <dc:date>2021-12-12T04:27:02Z</dc:date>
    <item>
      <title>Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674683#M52185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm attempting to find the duplicates in a field, then number the results sequentially within each duplicate set.&amp;nbsp; I've managed increment the duplicates, but not start over when the next duplicate is hit in the code. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At 9.3, I was able to use the field_Mark_Duplicates_2.cal from Easy Calculate 5.0 (&lt;/SPAN&gt;&lt;A href="http://www.ian-ko.com/free/free_arcgis.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;http://www.ian-ko.com/free/free_arcgis.htm&lt;/A&gt;&lt;SPAN&gt;).&amp;nbsp; Now at 10, I need to do it in python and I'm having little success.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;example of desired result:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;c==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a==&amp;gt;2&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is a snippet of code that increments all the duplicate in the table:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; rows = arcpy.UpdateCursor("Junk1.dbf")
&amp;nbsp;&amp;nbsp;&amp;nbsp; fields = arcpy.ListFields("Junk1.dbf" )
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Create an empty list
&amp;nbsp;&amp;nbsp;&amp;nbsp; myList = []
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fields:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if field.name == 'ID':
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.getValue(field.name)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if value in myList:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if value not in myList:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)

&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help would be greatly appreciated!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674683#M52185</guid>
      <dc:creator>DavidBrett</dc:creator>
      <dc:date>2021-12-12T04:27:00Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674684#M52186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm just learning python, but I think you might try something like this.. you'll probably have to fix syntax, but it's your list that may be the problem you are having... it won't cut it because you are incrementing regardless of what the "value" is so your results probably look more like this than what you want... &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;c==&amp;gt;1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b==&amp;gt;3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a==&amp;gt;4&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;try a matrix instead of a one D list.&amp;nbsp; where you are storing [['a',1], ['b',1], ['c',1]] and incrementing the second value if it is found (to save the value) and then setting the field in that row to that value... - this is just air code so you'll have to test it out&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy

rows = arcpy.UpdateCursor("Filename")
mylistarray = []


found = False
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.getValue("ID")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for x in mylistarray:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x[0] == value:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; found = True
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x[1] +=1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = x[1]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not found:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mylistarray.append([value,1])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; found = False
&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674684#M52186</guid>
      <dc:creator>TerrySilveus</dc:creator>
      <dc:date>2021-12-12T04:27:02Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674685#M52187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I usually use the approach of sorting by values, then comparing the previous value to the current value:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; rows = arcpy.UpdateCursor("Junk1.dbf","","","","ID A") # sort by ID, ascending order
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Create an empty list
&amp;nbsp;&amp;nbsp;&amp;nbsp; myList = []
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i = 0: #first time around
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row.ID != value: #if a new ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674685#M52187</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2021-12-12T04:27:05Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674686#M52188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I usually use the approach of sorting by values, then comparing the previous value to the current value:&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt; rows = arcpy.UpdateCursor("Junk1.dbf","","","","ID A") # sort by ID, ascending order
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Create an empty list
&amp;nbsp;&amp;nbsp;&amp;nbsp; myList = []
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i = 0: #first time around
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row.ID != value: #if a new ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Yeah:)... that's probably how I would have approached it as well, if I knew how to sort, being new to python though put me at a disadvantage.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:08 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674686#M52188</guid>
      <dc:creator>TerrySilveus</dc:creator>
      <dc:date>2021-12-12T04:27:08Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674687#M52189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks guys!! I was able to get these both to work with a little tweaking.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've settled on this version for now:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp; rows = arcpy.UpdateCursor("Junk1.dbf","","","","ID A") # sort by ID, ascending order
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Create an empty list
&amp;nbsp;&amp;nbsp;&amp;nbsp; myList = []

&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i == 0: #first time around
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print value, i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row.ID != value: #if a new ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = i - 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;any suggestions on getting that row.TEST = i - 1 to actually start on 0 for the first instance of a dup and then start counting from 0, rather than subtracting 1?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:10 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674687#M52189</guid>
      <dc:creator>DavidBrett</dc:creator>
      <dc:date>2021-12-12T04:27:10Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674688#M52190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;start i at -1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
&amp;nbsp;&amp;nbsp; rows = arcpy.UpdateCursor("Junk1.dbf","","","","ID A") # sort by ID, ascending order
&amp;nbsp;&amp;nbsp;&amp;nbsp; #Create an empty list
&amp;nbsp;&amp;nbsp;&amp;nbsp; myList = []

&amp;nbsp;&amp;nbsp;&amp;nbsp; i = -1
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i == -1: #first time around
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print value, i
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row.ID != value: #if a new ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.ID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; myList.append(value)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.TEST = i 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;NOTE: unless you use myList elsewhere in your code, doing it this way has eliminated the need for myList&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674688#M52190</guid>
      <dc:creator>TerrySilveus</dc:creator>
      <dc:date>2021-12-12T04:27:13Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674689#M52191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Great! Not really sure why I was using an array to be honest.&amp;nbsp; It seemed like that's what the examples were showing so I just went with it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Everything seems to working.&amp;nbsp; Next step is to turn it into a tool...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Apr 2011 19:38:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674689#M52191</guid>
      <dc:creator>DavidBrett</dc:creator>
      <dc:date>2011-04-11T19:38:29Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674690#M52192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;any ideas on getting this run in the field calculator?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Dec 2011 15:20:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674690#M52192</guid>
      <dc:creator>DavidBrett</dc:creator>
      <dc:date>2011-12-09T15:20:06Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674691#M52193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;any ideas on getting this run in the field calculator?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It won't work with the Field Calculator.&amp;nbsp; The Field Calculator will not let you control the record order by sorting it, which this code needs to do.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Dec 2011 15:25:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674691#M52193</guid>
      <dc:creator>RichardFairhurst</dc:creator>
      <dc:date>2011-12-09T15:25:47Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674692#M52194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This is has been extremely helpful.&amp;nbsp; Quick question as I am new to arcpy.&amp;nbsp; If I want to mark ALL repeated IDs with a flag and not necessarily just the second, third, fourth occurrence, how might I accomplish this?&amp;nbsp; For instance, if I had the following list of values:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;c&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With the above scripts, I would get&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;c-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;d-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e-1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I want is &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;a-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;c-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;d-0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e-1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;e-1 or 2 (Doesn't matter as long as I can see that this value is not equal to zero).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My goal is to flag the values that are duplicates, identify the value and then assign a new value to those records.&amp;nbsp; If I split a polygon, for instance, I don't want to maintain the ID of the old one, I want to seek out the value and replace it with two new unique IDs.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 04 Oct 2013 23:04:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674692#M52194</guid>
      <dc:creator>BobbiLay</dc:creator>
      <dc:date>2013-10-04T23:04:44Z</dc:date>
    </item>
    <item>
      <title>Re: Find Duplicates and increment</title>
      <link>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674693#M52195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;This is has been extremely helpful.&amp;nbsp; Quick question as I am new to arcpy.&amp;nbsp; If I want to mark ALL repeated IDs with a flag and not necessarily just the second, third, fourth occurrence, how might I accomplish this?&amp;nbsp; For instance, if I had the following list of values:&lt;BR /&gt;&lt;BR /&gt;a&lt;BR /&gt;b&lt;BR /&gt;c&lt;BR /&gt;d&lt;BR /&gt;e&lt;BR /&gt;e&lt;BR /&gt;&lt;BR /&gt;With the above scripts, I would get&lt;BR /&gt;&lt;BR /&gt;a-0&lt;BR /&gt;b-0&lt;BR /&gt;c-0&lt;BR /&gt;d-0&lt;BR /&gt;e-0&lt;BR /&gt;e-1&lt;BR /&gt;&lt;BR /&gt;What I want is &lt;BR /&gt;&lt;BR /&gt;a-0&lt;BR /&gt;b-0&lt;BR /&gt;c-0&lt;BR /&gt;d-0&lt;BR /&gt;e-1&lt;BR /&gt;e-1 or 2 (Doesn't matter as long as I can see that this value is not equal to zero).&lt;BR /&gt;&lt;BR /&gt;My goal is to flag the values that are duplicates, identify the value and then assign a new value to those records.&amp;nbsp; If I split a polygon, for instance, I don't want to maintain the ID of the old one, I want to seek out the value and replace it with two new unique IDs.&lt;BR /&gt;&lt;BR /&gt;Thanks in advance.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It makes no sense to use alphabetic unique IDs for an incremented value.&amp;nbsp; I won't write you the code to support it since with alphabetic IDs you are limited to meaningful values, which violates the concept of a unique ID.&amp;nbsp; If you are using an alpha ID switch it to a numeric unique ID as the only useful type for an autoincremented value.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Personally I just use the Summary Statistics tool to get a count of the field I want to detect duplicates for.&amp;nbsp; I do a join, select for count &amp;gt; 1, break the join and then do whatever update process I want.&amp;nbsp; The Summary Statistics also can give me the highest value of that field to let me identify the next highest value.&amp;nbsp; It does not take much to do this manually.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With a numeric ID, after getting the duplicate selection I would use the autoincrement calculation to begin with the next number and increment it.&amp;nbsp; Here is the autoincrement calculation:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Parser: Python&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Show Codeblock: Checked&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Pre-Logic Script Code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;rec=0
def autoIncrement():
&amp;nbsp; global rec
&amp;nbsp; pStart = 1 #adjust start value to be the next number in the ID series
&amp;nbsp; pInterval = 1 #adjust interval value, if req'd
&amp;nbsp; if (rec == 0): 
&amp;nbsp;&amp;nbsp;&amp;nbsp; rec = pStart 
&amp;nbsp; else: 
&amp;nbsp;&amp;nbsp;&amp;nbsp; rec = rec + pInterval 
&amp;nbsp; return rec&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Expression:&amp;nbsp; autoIncrement()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, with a numeric unique ID this whole process can be done as a standalone Python script.&amp;nbsp; This script does not sort the data, since IDs are meaningless and I want to gain the full speed of the da cursor, which will whip the pants off of any code based on the old cursor model.&amp;nbsp; It does process all records twice, but only updates records where duplicates occur.&amp;nbsp; It also always overwrites Null values with a sequenced number higher than any previously assigned number, whether or not there is more than 1 record that is Null.&amp;nbsp; (Deleted records at the end of the sequential ID series could cause previously assigned and removed IDs to be reused.&amp;nbsp; To correct for that set the "highest" variable to a value that will ensure no prior assigned numbers are ever used by the script).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;# Import the arcpy module
import arcpy

pStart = 1 # adjust start value, if required 

pInterval = 1 # adjust interval value, if required

# Initialize the sequence number dictionary and the Route ID variables
seqDict = {}

ID = -1
highest = 0
changed = False

# Assign data and field list variables.
# Customize these variable inputs for your specific data
myData = r"C:\MyPath\MyData.shp"

fields = ["ID"]

# Step 1 - Use an search cursor to get counts of the unique ID numbers
rows = arcpy.da.SearchCursor(myData, fields)
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; if row[0] is None:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID = "Null"
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID = row[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ID in seqDict:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; seqDict[ID] = seqDict[ID] + pInterval
&amp;nbsp;&amp;nbsp;&amp;nbsp; elif ID = 'Null':
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; seqDict[ID] = 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; seqDict[ID] = pStart
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if highest &amp;lt; ID:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; highest = ID
&amp;nbsp;&amp;nbsp;&amp;nbsp; del row
del rows
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
# Step 2 - Use an update cursor to update all records with a count greater than 1
rows = arcpy.da.UpdateCursor(myData, fields)
for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; if row[0] is None:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID = "Null"
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ID = row[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; if seqDict[ID] &amp;gt; 1:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; highest = highest + pInterval
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[0] = highest
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changed = True
&amp;nbsp;&amp;nbsp;&amp;nbsp; if changed:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; changed = False
&amp;nbsp;&amp;nbsp;&amp;nbsp; del row
del rows&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you really have to have an alphabetic unique ID, what is the increment style you propose to use?&amp;nbsp; Whatever increment style you want it involves much more code than it is worth to support it, which is why I won't write the code for you.&amp;nbsp; For that I would just do the Summary Statistics approach I originally suggested. After selecting the records based on the summary count being greater than 1 or having a Null ID value, I would update the alphabetic field manually to fit my style needs rather than doing the autoincrement calculation.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 04:27:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/find-duplicates-and-increment/m-p/674693#M52195</guid>
      <dc:creator>RichardFairhurst</dc:creator>
      <dc:date>2021-12-12T04:27:15Z</dc:date>
    </item>
  </channel>
</rss>

